MFC实现画图工具中的画线功能(一)

    在学习MFC画图之前,我们首先要搞清楚客户区这个概念。

    在MFC的单文档应用程序中,有两个窗口,即CMainFrame框架窗口和CTestView窗口,CTestView窗口是CMainFrame框架窗口的子窗口,它始终覆盖在CMainFrame框架窗口之上。对于框架窗口和视图窗口的客户区在下图中标示了

       

如图所示,红色框内是CView的客户区,绿色框内是CMainFrame的客户区

一般我们是在客户区中画图。

现在,我们可以开始进行画图程序的编写了。

一、因为我们是用鼠标来画图,所以必须给程序添加鼠标的消息响应函数,OnLButtonDown(UINT nFlags, CPoint point) 和OnLButtonUp(UINT nFlags, CPoint point) ,

   这两个消息响应函数都有一个CPoint类型的参数,其实这就是鼠标的坐标点,所以我们还要给CMFC01View类添加一个数据成员m_ptOrigin来保存这个坐标点,

   我们在OnLButtonDown(UINT nFlags, CPoint point) 中m_ptOrigin=point;保存这个原点。

   在OnLButtonUp(UINT nFlags, CPoint point)定义一个DC的句柄,

  

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);
MoveToEx:先移动到当前的一个位置

LineTo:从当前位置到哪

ReleaseDC:释放DC

那么这样的话,就可以画线了。

这里是用API函数来画线的。


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值