对获取设备描述表的简单总结
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还差不多。
就是这样~~最后热烈庆贺中国再获诺贝尔和平奖。