twitter logo GDI绘制
做Windows大作业时获得的一些新经验

对获取设备描述表的简单总结

bachue posted @ 2010年10月09日 18:13 in Win32 C Programming with tags dc WM_PAINT WM_CREATE WM_DESTROY BeginPaint EndPaint GetDC ReleaseDC WM_NCPAINT GetWindowDC CreateDC DeleteDC CreateCompatibleDC , 2364 阅读

昨天晚上一直在纠结于绘图的问题。相同的创建删除DC的代码,放在WM_PAINT里是对的,放进WM_CREATE和WM_DESTROY就全错了,不知道为什么,后来才想起来,不同的事件必须用不同的创建DC的函数,不能混用。

WM_PAINT里要用BeginPaint和EndPaint函数来取得DC,进行重绘。

WM_CREATE里必须用GetDC来取得DC,ReleaseDC既可以在WM_CREATE,也可以在WM_DESTROY里,实现DC在全局有效。

GetWindowDC获取整个窗口的DC,连同客户区和非客户区,WM_NCPAINT(NC是非客户区,不是脑残)事件负责对非客户区的重绘。ReleaseDC负责删除它。

CreateDC获取整个屏幕的DC,似乎不仅限于屏幕使用,具体怎么用,我也不知道。由DeleteDC负责删除。

至于CreateCompatibleDC想必就不用说了。这函数名字起的不好,叫缓存DC还差不多。

就是这样~~最后热烈庆贺中国再获诺贝尔和平奖。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter