网站首页 > 物联资讯 > 技术分享

mfc subclasswindow attach setwindowlong使用区别

2016-09-28 00:00:00 广州睿丰德信息科技有限公司 阅读
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接

1、

CWnd::Attach

BOOL Attach( HWND hWndNew );

返回值:如果成功,则返回非零值;否则返回0。

参数: hWndNew 指定了Windows窗口的句柄。  

说明:将一个Windows窗口与CWnd对象相连接。

CWnd::SubclassWindow

BOOL SubclassWindow( HWND hWnd );

返回值:如果函数成功,则返回非零值;否则返回0。

参数: hWnd 窗口句柄。  

说明:
调用这个成员函数以动态子类化一个窗口,并将它与这个CWnd对象相连接。当窗口被动态子类化时,窗口消息将通过CWnd的消息映射,并首先调用CWnd类中的消息处理函数。发送给基类的消息将被传递给窗口的缺省消息处理函数。
这个成员函数将Windows控件与CWnd对象连接起来,并替换窗口的WndProc和AfxWndProc函数。这个函数在CWnd对象中保存旧的WndProc的指针。

SetWindowLong 修改窗口的属性.

 

2、

SubClassWindow、SubClassDlgItem这两个约等于,类似包装,方便使用
DDX会调用SubClassWindow,SubClassWindow会调用Attach
最终的目的是绑定控件和你的衍生类

我最常用的当然是DDX,系统自己搞定,自己不写代码
然后是SubClassWindow/Attach,视情况调用Unsub/Untach
SubClassDlgItem更少用

一般用在Oninitdialog

 

RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成