CS_OWNDC与 CS_CLASSDC

来源:互联网 发布:海岛奇兵上尉升级数据 编辑:程序博客网 时间:2024/06/06 18:16

摘自:http://st251256589.blog.163.com/blog/static/164876449201131182737414/

先说说CS_OWNDC  

在调用GetDC或BeginPaint时,windows用默认值创建一个设备描述表,对设备描述表属性所做的一切改变在ReleaseDC或EndPaint使用后都会失效。如果你不想使用默认属性,那么可以使用CS_OWNDC 和 CS_CLASSDC 自己定义设备描述表属性。 
wndclass.style=CS_OWNDC
现在基于这个窗口类的每一个窗口都被创建了一个设备描述表,且一直存在直到窗口被删除。只需要初始化一次设备描述表(可以在WM_CREATE消息期间完成)当然可以在需要时改变,以后每次调用GetDC和BeginPaint函数时返回的的设备描述表就是用你刚刚设置的设备描述表了。CS_OWNDC风格只影响GetDC和BeginPaint获得的设备描述表,不影响其它函数(如GetWindowDC)获得设备描述表。
而关于CS_CLASSDC与CS_OWNDC不同的是,窗口类使用此风格时,只创建一个设备描述表为所有的窗口,所有的窗口共享这一个设备描述表(且是互斥的)。
0 0
原创粉丝点击