Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Допустим, ты рисуешь на канве формы. Хотя, это не имеет значения. Ты знаешь координаты своего объекта. Для прямоугольника достаточно знать координаты верхнего левого угла и правого нижнего. Теперь в обработчике OnMouseDown (или OnMouseUp) проверяй координаты X, Y, которые передаются в обработчик события, на то, находится ли точка с этими координатами внутри объекта или нет. Для прямоугольника это будет примерно так:
if ((X>LeftCorner.X)&&(X<RightCorner.X)&&(Y>LeftCorner.Y)&&(Y<RightCorner.Y))
{
//Сюда попадем, если точка внутри прямоугольника
};
LeftCorner и RightCorner - структуры типа POINT, содержащие координаты точек (Левого и правого углов)
Для круга проверка по формуле (X-Xc)^2+(Y-Yc)^<=R^2. Xc и Yc - координаты центра круга. Правда, для сложных фигур (типа замкнутых фигур, состоящих из кривых Безье) такую проверку будет сделать сложновато.
По GDI советую читать MSDN.

Отправлено: 13:36, 25-07-2006 | #2