MFC画直线(3)

来源:互联网 发布:奥运会和世界杯知乎 编辑:程序博客网 时间:2024/05/21 07:15

核心代码如下:

void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultm_ptOrigin=point;CView::OnLButtonDown(nFlags, point);}void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) {/*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);//释放DC *//*CDC *pDC=GetDC();pDC->MoveTo(m_ptOrigin);//起点m_ptOriginpDC->LineTo(point); //终点pointReleaseDC(pDC); */CClientDC dc(this);dc.MoveTo(m_ptOrigin);dc.LineTo(point);CView::OnLButtonUp(nFlags, point);}

或者,使用CWindowDC dc(),它可以再整个屏幕:客户区和非客户区,画直线。

void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) {//CWindowDC dc(this);//获取当前窗口的指针CWindowDC dc(GetParent());//获取父窗口的指针dc.MoveTo(m_ptOrigin);dc.LineTo(point);CView::OnLButtonUp(nFlags, point);}

效果如下:



 

1 0
原创粉丝点击