
21.04.2010, 21:51
|
|
Участник форума
Регистрация: 03.11.2009
Сообщений: 102
Провел на форуме: 1319431
Репутация:
22
|
|
вопрос есть прямоугольник при нажатии мышки он должен появится там где я нажал
(ето реализовано 5ю Lineto)
код
void CLab6View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_point =point; // Вводиться програмістом
m_pointOld=point;
SetCapture();
m_flag=1;
RECT rect;
GetClientRect(&rect);
ClientToScreen(&rect);
::ClipCursor(&rect);
CView::OnLButtonDown(nFlags, point);
}
void CLab6View::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_flag) // Вводиться програмістом
{
CClientDC pDC(this);
pDC.SetROP2(R2_NOT);
pDC.MoveTo(m_point);
//////////////////////////
pDC.LineTo(m_point.x,m_point.y);
pDC.LineTo(m_point.x+100,m_point.y);
pDC.LineTo(m_point.x+100,m_point.y+50);
pDC.LineTo(m_point.x,m_point.y+50);
pDC.LineTo(m_point.x,m_point.y);
//////////////////////////
//m_pointOld=point;
}
CView::OnMouseMove(nFlags, point);
}
void CLab6View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (m_flag) // Вводиться програмістом
{
m_flag=0;
::ReleaseCapture();
::ClipCursor(NULL);
CClientDC pDC(this);
pDC.SetROP2(R2_NOT);
pDC.MoveTo(m_point);
pDC.LineTo(m_pointOld);
pDC.SetROP2(R2_COPYPEN);
pDC.MoveTo(m_point);
pDC.LineTo(point);
}
CView::OnLButtonUp(nFlags, point);
}
В Обшем оно рисует то что нада итд но вопрос в другом после отпускания мышки етот прямоугольник иногда остаётся на екране а иногда нет
подскажите что добавить чтобы его убрать вобще
и еще как зделать так чтобы при движении мышки прямоугольник расширялся с верхнего левого угла в сторону правого нижнего угла(за етот код отдельное спс)
целый день гуглил мало что нашол
спс за будущую помощ ачатовцы)
|
|
|