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

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Besi, 16 May 2010.

  1. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    в общем в чём суть
    есть обработчики OnLButtonDown, OnMouseMove ,OnLButtonUp

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

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

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

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

    yaneblinchik Member

    Joined:
    6 Feb 2010
    Messages:
    113
    Likes Received:
    19
    Reputations:
    0
    /thread204256.html
     
  3. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    yaneblinchik
    ето не совсем то)))тут другая загвоздка)))
     
  4. telega

    telega New Member

    Joined:
    29 Aug 2009
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    а цикл некатит ?
     
  5. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    telega OnMouseMove -и есть мой цыкл)) в котором нада реализовать перемещение
     
  6. yaneblinchik

    yaneblinchik Member

    Joined:
    6 Feb 2010
    Messages:
    113
    Likes Received:
    19
    Reputations:
    0
    Ждем снега :D
     
  7. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    yaneblinchik))не смешно)))
     
  8. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    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;
     
  9. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    а в нашем случае
    x =point.x
    y=point.y
    ?
    Ellipse.Left
    Ellipse.Top
    так как я понимаю ето и есть собствено елипс но его нада сначало описать но как -хз

    и на ето ругается)))
     
    #9 Besi, 16 May 2010
    Last edited: 16 May 2010
  10. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    ах у тебя эллипса нет... я так понял (вернее, надеялся), что у тебя формочка на билдере с TShape'ом.
    А Ellipse.Left и Ellipse.Top - это координаты эллипса; x, y - положение курсора
     
  11. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    нет у мя чистый WINApi

    мне вот нада как здесь )))/thread204256.html только условие другое
     
  12. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    пршу очень прошу опишыте)))время поджымает))
     
  13. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    блин оч прошу помогите) ну не врублюсь я в алгоритм
     
  14. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    больше похоже что даже не пытался.
     
  15. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    Ra$cal
    ихдники пытания дать?))
    вобщем незнаю как его прорисовать последний шанс-кинуть битмап статический и его перемищать
     
  16. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    1) Взять координату мыши
    2) Вызывать функцию рисования эллипса на полученные коорлинаты

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

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    Всё зделал) намучившысь)
    тему дел
     
  18. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    да на мфц он кодит) щаа, тз посморю...)


    лови, тс)

    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);
    }
     
    #18 sn0w, 16 May 2010
    Last edited: 16 May 2010