MFC之双缓存实现鼠标划线
本文实现的是MFC中一个简单的鼠标划线功能,目的是为了实现像电脑中的画图软件中画线一样的效果:鼠标点击后开始划线,随着鼠标的移动,直线也移动变化,最终释放鼠标时完成一条直线的绘制。
为避免绘画中的闪烁,采取了双缓存机制进行绘画。
(一)visual studio2013,创建MFC程序
(二)程序代码
主要是在默认生成的View文件中修改:
1、在MFCTest1View.h头文件中创建变量
private:
CPoint origin;
CPoint end;
BOOL m_bDraw=FALSE;
CDC BufferDC;
CBitmap BufferBitmap;
2、OnDraw()函数
// CMFCTest1View 绘制
void CMFCTest1View::OnDraw(CDC* pDC)
{
CRect rc;
GetClientRect(&rc);
if (BufferDC.GetSafeHdc() == NULL){
BufferDC.CreateCompatibleDC(pDC)