Я нарисовал Эллипс.У меня есть 8 дескрипторов.
Дескрипторами являются TopLeft, MidTop, TopRight, MidLeft, MidRight, BottomLeft, MidBottom, BottomRight.
Всякий раз, когда пользователь наводит курсор на любой из этих маркеров, отображается курсор.Для отображения курсора я сослался на эллипс формы MS-WORD.
Моя проблема возникает, когда я поворачиваюсь или делаю зеркальное отображение эллипса.Я не могу изменить координаты, поэтому курсоры не отображаются должным образом.
Пожалуйста, помогите.
Примечание: Пожалуйста, откройте MS-WoRD.Перейти к «ВСТАВИТЬ» Выберите «ФОРМЫ» В этом выберите форму «Эллипс».Нарисуй это.Если вы нажмете на нее, вы увидите 8 точек, окружающих форму эллипса.Это так называемые ручки.Если вы наведите курсор мыши на любую из ручек, проверьте отображение курсора.Курсор отображается в зависимости от ручки.Мне нужно реализовать ту же функциональность, что и в MS-WORD в VC ++..
РЕДАКТИРОВАТЬ - Добавлена информация ниже из комментариев:
Проблема в перестановке координат после поворота.Если я слегка поверну эллипс вправо (попробуйте MS-WoRD).Какую точку я считаю верхней-левой?Я попытался переставить с приведенным выше кодом.Но это не сработало во многих случаях.Получение верхней левой точки после вращения эллипса - главная большая проблема, с которой я сейчас сталкиваюсь.
struct SortingFunction
{
bool operator()(const CRect& a, const CRect& b)
{
if (a.left == b.left)
return a.top <= b.top; else return a.left < b.left;
}
}