利用MFC的CClientDC类实现画线功能

本文介绍了如何在MFC应用中利用CClientDC类来实现在视图上绘制线条的功能。通过覆盖OnLButtonDown、OnLButtonUp和OnMouseMove事件,实现了从鼠标按下到释放期间的连续画线操作。在OnLButtonDown中记录起点,在OnMouseMove中使用CClientDC创建设备上下文并画线,在OnLButtonUp中清除起点坐标。

 CClientDC派生于CDC类,在构造函数时调用GetDC函数,在析构时调用ReleaseDC函数。

CClientDC dc(this); //CClientDC dc(GetParent()); 可绘制直线到工具栏等地方

dc.MoveTo(m_ptOrigin);

dc.LineTo(point);

MFC  CClientDC实现画图主要代码:

// lineView.h : ClineView 类的接口

public:
 // 用来记录鼠标位置
 CPoint start;
 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
 afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
 afx_msg void OnMouseMove(UINT nFlags, CPoint point);

// lineView.cpp : ClineView 类的实现

void ClineView::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值

 CView::OnLButtonDown(nFlags, point);
 star

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值