subclassdlgitem
子类化一个控件.
Subclass(
子类化)是MFC中最常用的
窗体技术之一。
子类化完成两个工作:一是把
窗体类对象attach到一个windows窗体实体中(即把一个窗体的hwnd赋给该类)。另外就是把该类对象的消息加入到消息
路由中,使得该类可以捕获消息。
SubclassDlgItem可以把对话框中已有的控件与某个
窗口对象动态连接起来,该窗口对象将接管控件的消息处理,从而使控件具有新的特性.SubclassDlgItem函数的声明为
BOOL SubclassDlgItem( UINT nID, CWnd* pParent );
参数nID是控件的ID,pParent是指向父窗口的
指针.若连接成功则函数返回TRUE,否则返回FALSE.
综上所述,要在程序中使用派生控件,应该按下面两步进行:
在对话框模板中放置好
基类控件.
在对话框类中嵌入派生控件类的对象.
在OnInitDialog中调用SubclassDlgItem将派生类的控件对象与对话框中的
基类控件相连接,则这个基类控件对象变成了派生控件对象
该函数用来
eg: 我们想将CBitmapButton 和CButton关联起来, 首先在对话框中加入CButton控件,然后在该对话框类的.h文件中加入CBitmapButton bitmapButt;变量,然后在对话框的
OnInitDialog中调用SubclassDlgItem将派生类的控件对象与对话框中的
基类
控件相连接,CBitmapButton bitmapButt;
bitmapButt.SubclassDlgItem(IDB_BUTTON,this);即可。
bitmapButt.SubclassDlgItem(IDB_BUTTON,this);即可。