mfc subclasswindow attach setwindowlong使用区别
睿丰德科技 专注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中间件 条码系统中间层 物联网软件集成