в общем в чём суть есть обработчики OnLButtonDown, OnMouseMove ,OnLButtonUp при OnLButtonDown захватываются координаты point при OnMouseMove собственно нада тупо код который выполняет премеишение данного елипса с статическими размерами при передвижении мышы при OnLButtonUp вівод меседж бокса с координатами центра елипса (но ето я зделаю сам) благодарю если помогёте))
Code: 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 - положение курсора
Ra$cal ихдники пытания дать?)) вобщем незнаю как его прорисовать последний шанс-кинуть битмап статический и его перемищать
1) Взять координату мыши 2) Вызывать функцию рисования эллипса на полученные коорлинаты Не понимаю, какой именно алгоритм не получается придумать. По шагам напиши в блокноте что требуется сделать - вот и все.
да на мфц он кодит) щаа, тз посморю...) лови, тс) Code: 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); }