MFC简单的绘图(一)

一、实现画线功能

步骤:

1、新建一个MFC项目“Draw1”,单文档。

2、在视图类中添加鼠标左键按下的消息处理OnLButtonDown(UINT nFlags, CPoint point)

3、在视图类中添加CPoint类型的成员变量m_ptOrigin,并在OnLButtonDown中初始化为point;

4、在视图类中添加鼠标左键弹起的消息处理OnLButtonUp(UINT nFlags, CPoint point) ,并重写该函数。

方法一:利用SDK全局函数实现

在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);

方法二:利用MFC的CDC类实现

在OnLButtonUp(UINT nFlags, CPoint point)中添加代码:

CDC *pDC = GetDC(); pDC->MoveTo(m_ptOrigin); pDC->LineTo(point); ReleaseDC(pDC);

方法三:利用MFC的CClientDC 类实现

在OnLButtonUp(UINT nFlags, CPoint point)中添加代码:

CClientDC dc(GetParent()); //每个对象都有一个this指针指向自己本身,如果把this改成GetParent()(指向父窗口指针),就可以实现在客户区画线,工具栏属于框架窗口的客户区。 dc.MoveTo(m_ptOrigin); dc.LineTo(point);

方法四:利用MFC 的CWindowDC类实现

CWindowDC dc(this); //该对象可以访问整个窗口区域,包括框架窗口的非客户区和客户区,同样道理,this也可以改成GetParent()就可以访问整个窗口了。 dc.MoveTo(m_ptOrigin); dc.LineTo(point);

在桌面窗口中画线,只要把上面的方法四中的this指针改成GetDesktopWindow()(CWnd类的成员函数,该函数可以获得整个Windows桌面窗口的句柄)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值