PDA

Просмотр полной версии : предвижение елипса(статического) с++


Besi
16.05.2010, 13:05
в общем в чём суть
есть обработчики OnLButtonDown, OnMouseMove ,OnLButtonUp

при OnLButtonDown
захватываются координаты point

при OnMouseMove
собственно нада тупо код который выполняет премеишение данного елипса с статическими размерами
при передвижении мышы

при OnLButtonUp
вівод меседж бокса с координатами центра елипса (но ето я зделаю сам)

благодарю если помогёте))

yaneblinchik
16.05.2010, 13:16
https://forum.antichat.ru/thread204256.html

Besi
16.05.2010, 13:17
yaneblinchik
ето не совсем то)))тут другая загвоздка)))

telega
16.05.2010, 13:19
а цикл некатит ?

Besi
16.05.2010, 13:19
telega OnMouseMove -и есть мой цыкл)) в котором нада реализовать перемещение

yaneblinchik
16.05.2010, 13:23
Ждем снега :D

Besi
16.05.2010, 13:27
yaneblinchik))не смешно)))

desTiny
16.05.2010, 13:46
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;

Besi
16.05.2010, 13:56
а в нашем случае
x =point.x
y=point.y
?
Ellipse.Left
Ellipse.Top
так как я понимаю ето и есть собствено елипс но его нада сначало описать но как -хз

и на ето ругается)))

desTiny
16.05.2010, 15:33
ах у тебя эллипса нет... я так понял (вернее, надеялся), что у тебя формочка на билдере с TShape'ом.
А Ellipse.Left и Ellipse.Top - это координаты эллипса; x, y - положение курсора

Besi
16.05.2010, 15:46
нет у мя чистый WINApi

мне вот нада как здесь )))https://forum.antichat.ru/thread204256.html только условие другое

Besi
16.05.2010, 16:17
пршу очень прошу опишыте)))время поджымает))

Besi
16.05.2010, 19:20
блин оч прошу помогите) ну не врублюсь я в алгоритм

Ra$cal
16.05.2010, 21:16
больше похоже что даже не пытался.

Besi
16.05.2010, 21:24
Ra$cal
ихдники пытания дать?))
вобщем незнаю как его прорисовать последний шанс-кинуть битмап статический и его перемищать

Ra$cal
16.05.2010, 21:30
1) Взять координату мыши
2) Вызывать функцию рисования эллипса на полученные коорлинаты

Не понимаю, какой именно алгоритм не получается придумать. По шагам напиши в блокноте что требуется сделать - вот и все.

Besi
16.05.2010, 21:40
Всё зделал) намучившысь)
тему дел

sn0w
16.05.2010, 21:56
да на мфц он кодит) щаа, тз посморю...)


лови, тс)

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);
}