Просмотр полной версии : предвижение елипса(статического) с++
в общем в чём суть
есть обработчики OnLButtonDown, OnMouseMove ,OnLButtonUp
при OnLButtonDown
захватываются координаты point
при OnMouseMove
собственно нада тупо код который выполняет премеишение данного елипса с статическими размерами
при передвижении мышы
при OnLButtonUp
вівод меседж бокса с координатами центра елипса (но ето я зделаю сам)
благодарю если помогёте))
yaneblinchik
16.05.2010, 13:16
https://forum.antichat.ru/thread204256.html
yaneblinchik
ето не совсем то)))тут другая загвоздка)))
telega OnMouseMove -и есть мой цыкл)) в котором нада реализовать перемещение
yaneblinchik
16.05.2010, 13:23
Ждем снега :D
yaneblinchik))не смешно)))
OnLButtonDown(x,y):
//if (x,y внутри эллипса){
moving = 1;
x0 = Ellipse.Left - x;
y0 = Ellipse.Top - y;
//}
OnMouseMove(x,y):
if (moving){
Ellipse.Left = x + x0;
Ellipse.Top = y + y0;
}
OnLButtonUp():
moving = 0;
а в нашем случае
x =point.x
y=point.y
?
Ellipse.Left
Ellipse.Top
так как я понимаю ето и есть собствено елипс но его нада сначало описать но как -хз
и на ето ругается)))
ах у тебя эллипса нет... я так понял (вернее, надеялся), что у тебя формочка на билдере с TShape'ом.
А Ellipse.Left и Ellipse.Top - это координаты эллипса; x, y - положение курсора
нет у мя чистый WINApi
мне вот нада как здесь )))https://forum.antichat.ru/thread204256.html только условие другое
пршу очень прошу опишыте)))время поджымает))
блин оч прошу помогите) ну не врублюсь я в алгоритм
больше похоже что даже не пытался.
Ra$cal
ихдники пытания дать?))
вобщем незнаю как его прорисовать последний шанс-кинуть битмап статический и его перемищать
1) Взять координату мыши
2) Вызывать функцию рисования эллипса на полученные коорлинаты
Не понимаю, какой именно алгоритм не получается придумать. По шагам напиши в блокноте что требуется сделать - вот и все.
Всё зделал) намучившысь)
тему дел
да на мфц он кодит) щаа, тз посморю...)
лови, тс)
BOOL b_Drawing;
void CtestrectDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CDC *pdc = GetDC();
RECT rc;
CBrush cbr;
cbr.CreateSolidBrush(RGB(128,128,128));
GetClientRect(&rc);
pdc->FillRect(&rc, &cbr);
if(b_Drawing)
{
cbr.CreateSolidBrush(RGB(128,128,255));
pdc->SelectObject(&cbr);
pdc->Ellipse(point.x -40, point.y-20, point.x+40,point.y+20);
}
}
void CtestrectDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
b_Drawing = TRUE;
}
void CtestrectDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
CString cs_coords;
b_Drawing = FALSE;
cs_coords.Format("ellipse center x= %d, ellipse center y= %d", point.x, point.y);
AfxMessageBox(cs_coords);
}
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot