对于MFC绘图,博主也没有什么真知灼见,只是将自己在学习MFC绘图中遇到的问题进行整理,大部分内容并非原创,博主都在醒目位置给出了出处。包含的内容有DC设备描述表、绘图基础、双缓冲、鼠标控制和MFC中使用OpenGL。希望能有帮助,我们开始吧。
1.设备描述表——Device Context
这里推荐以下几篇博文:MFC中的设备描述表(DC)
设备描述表(DC)是Windows中的一种数据结构,它包含GDI需要的关于显示界面情况的描述字段,操作系统通过DC(设备描述表)和底层打交道。
HDC是DC的句柄,API中一个类似指针的数据类型。
CDC是MFC的DC的一个类,其中有一个成员变量m_nHdc就是HDC类型的句柄。
CDC还有许多派生类,其使用相信参见我推荐的博文,这里只是抛砖引玉。
2.MFC绘图基础
这里推荐这几篇博文:可当做编程手册的博客
3.双缓冲技术
双缓冲并非很难得技术,这篇博客讲的非常清楚:MFC双缓冲绘图
4.鼠标控制
鼠标控制本质就是建立一个状态机,然后修改状态机的状态
这个是MFC鼠标消息事件的基本内容,自行Google,就不多赘述
这里只强调WM_MOUSELEAVE消息,这个消息会在鼠标离开控件所在区域时被触发,但是需要事先,在鼠标进入控件区域时进行设置,使得鼠标的状态被追踪,这样才会有消息发送,否则是没有消息发送,OnMouseLeave函数是不会被触发的。
关于WM_MOUSELEAVE的内容都在这篇博客中:让窗口捕获并响应WM_MOUSELEAVE消息。
5.MFC中使用OpenGL
这部分是进阶内容,如果内需要绘制简单的三维图形或者复杂的动态二维图形,那么OpenGL一定会有帮助,在MFC中使用OpenGL,我的博客前些时候发过的博文,希望能有帮助。