21.VC(custom)-注册窗口类

 

在WNDCLASS结构中最重要的两个字段是第二个和最后一个,第二个字段(lpfnWndProc) 是依据这个类别来建立的所有窗口所使用的窗口消息处理程序的地址,最后一个字段是窗口类别的文字名称。程序写作者可以随意定义其名称。在只建立一个窗口的程序中,窗口类别名称通常设定为程序名称。

 wndclsCtrl.style   = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;

通常我们只使用少数的窗口类别样式,CS_HREDRAW | CS_VREDRAW 每当窗口的水平方向大小(CS_HREDRAW)或者垂直方向大小(CS_VREDRAW)改变之后,窗口要完全重画。

这里着重说明下CS_OWNDC:Allocates a unique device context for each window in the class,为这个类的每个窗口分配一个唯一的设备描述表(即DC)。

通常:在需要用DC时(GetDC或BeginPaint),windows会用默认值建立一个新的DC对象,你对DC做的所有改变(比如载入新的字体,画笔)都会在ReleaseDC或EndPaint中释放掉,都会丢失。

但如果你想在释ReleaseDC或EndPaint中释放掉DC后,仍保存对DC所做的那些更改,以便下次用DC(GetDC或BeginPaint)时不要再次设置,那么在注册窗口类时加上CS_OWNDC.

在注册窗口类时还要考虑到这个类名有没有被注册,这里用到一个函数

  

如lpclassName存在,则BOOL为true,得到class的副本到lpwndclass中,否则返回false

注册窗口类的代码如下:

#define  CUSTOMWND_CLASS _T("CCustomWnd")

将它放在CCustomWnd的构造函数中就行了

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值