问一个基础的问题

时间:2022-07-06 20:17:01
在利用SDK全局函数实现画线功能里面

void CDrawtestView::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TOD Add your message handler code here and/or call default
m_ptOrigin=point;

CView::OnLButtonDown(nFlags, point);
}

void CDrawtestView::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TOD Add your message handler code here and/or call default
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
::ReleaseDC(m_hWnd,hdc);

CView::OnLButtonUp(nFlags, point);
}

书上说MoveToEx第二、第三个参数是新位置的坐标,那么为什么使用m_ptOrigin呢?这个应该是原来位置的呀。而新位置应该是point呀?

请高手解释一下!

5 个解决方案

#1


请问你的鼠标是先按下呢还是先弹起?

#2


无所谓新旧,关键看你想画什么样的线。

#3


```````````````````这段代码是话你按下鼠标后移动,到是释放鼠标,这两点之间的直线.

#4


MoveTo是移到那个点```它原来的点是(0,0),你要画的新的是你左键按下的,所以是m_ptOrigin
LineTo是画线到你那个点,所以是Up的时候的点`

#5


明白楼上的了!

#1


请问你的鼠标是先按下呢还是先弹起?

#2


无所谓新旧,关键看你想画什么样的线。

#3


```````````````````这段代码是话你按下鼠标后移动,到是释放鼠标,这两点之间的直线.

#4


MoveTo是移到那个点```它原来的点是(0,0),你要画的新的是你左键按下的,所以是m_ptOrigin
LineTo是画线到你那个点,所以是Up的时候的点`

#5


明白楼上的了!