SUBCLASSDLGITEM函数
来源:互联网 发布:北京网络教育哪家好 编辑:程序博客网 时间:2024/06/16 16:25
SubClass Dialog 上面的一个控件呀! 在MFC中除了SubClassDlgItem外还有SubclassWindow函数用来执行同样的功能。在与某个控件ID关联起来之后,所有该控件的消息将会有该类来响应。通常使用过程如下 补充一下,用一个窗口过程替换另一个过程的行为叫SUBCLASSING,这是WINDOWS意义上的派生子类,与面向对象语言的派生子类是完全不同的概念。SubClassDlgItem让对话框内指定子控制自己的窗口过程替代默认窗口过程,以拦截消息。 在VC 中,DoDataExchange函数中的DDX_Control之类的函数会调用SubClassDlgItem完成窗口子类化,这样控件自己就能处理消息了。 BOOL SubclassDlgItem( UINT nID, CWnd* pParent ); 综上所述,要在程序中使用派生控件,应该按下面两步进行: 1、在对话框模板中放置好基类控件. 例如,如果要在对话框中使用新设计的编辑框控件,应先在对话框模板中的合适位置放置一个普通的编辑框,然后,在OnInitDialog函数中按下面的方式调用SubclassDlgItem即可: BOOL CMyDialog::OnInitDialog() 另:CSDN论坛上一老兄的话说的更通俗点如下,
SubClass 某个控件后,其原来的 WindowProc 替换成你自己写的 CYourCWndClass 的 WindowProc,这样你就可以处理这个控件的所有消息了;用 ClassWizard 维护自己的 CYourCWndClass 就可以了。
一、从希望Subclass的控件派生一个类例如从CEdit->CMyEdit;
二、在CMyEdit中完成希望处理的消息,例如OnChar等;
三、在对话框类中定义一个CMyEdit类的成员变量m_myEdit;
四、在Dialog的OnInitDialog中加入m_myEdit(IDC_EDIT, this);
这样当在IDC_EDIT上发生OnChar时,将会调用CMyEdit中的OnChar
参数nID是控件的ID,pParent是指向父窗口的指针.若连接成功则函数返回TRUE,否则返回FALSE.
2、在对话框类中嵌入派生控件类的对象.
3、在OnInitDialog中调用SubclassDlgItem将派生类的控件对象与对话框中的基类控件相连接,则这个基类控件变成了派生控件.
{
CDialog::OnInitDialog();
m_MyEdit.SubclassDlgItem(IDC_MYEDIT, this);
return TRUE;
}
你先自己根据自己的需要派生一个基于某个控件类的新类,比如CMyEdit,然后用这个新类在对话框中定义一个实例,如CMyEdit myedit,你在RESOURCE编辑中在对话框中扔了一个EDIT BOX,ID号为ID_MYEDIT,则现在你就可以用
myedit.SubclassDlgItem(IDC_MYEDIT, this);
那么这个你扔的EDIT BOX就具有你新派生的类的属性和方法。
- SUBCLASSDLGITEM函数
- SUBCLASSDLGITEM函数
- Subclassdlgitem
- VC/MFC中subclassdlgitem函数详解
- 利用SubclassDlgItem函数动态连接控件和控件对象
- 利用SubclassDlgItem函数动态连接控件和控件对象
- VC++中subclassdlgitem函数的功能、用法及注意事项
- VC++中subclassdlgitem函数的功能及用法
- VC++中subclassdlgitem函数的功能、用法及注意事项
- VC++中subclassdlgitem函数的功能及用法
- 关于SubClassDlgItem
- 关于SubClassDlgItem
- 模态/非模态对话框的生&死 VC++中subclassdlgitem函数的功能及用法
- MFC控件的SubclassDlgItem
- SubclassWindow和SubclassDlgItem
- SubclassWindow和SubclassDlgItem介绍
- SubclassWindow和SubclassDlgItem
- 【C++】DDX_Control、SubclassWindow和SubclassDlgItem的区别
- 一个字符串参数(s)由字母(a-z,A-Z)组成, 且最大字符位数为40,要求写一个函数, 返回该参数中连续相同字母的最大个数及该字母,如果最大位数有多个,则返回第一个。例:字符串“aaaddxxxxddddxxxx”,返回值为:“x,4”。
- cxGrid的汇总行显示小数的问题
- java代码实现弹出系统关机界面,关机菜单
- linux attribute机制
- 引用不被静态变量保存~
- SUBCLASSDLGITEM函数
- ZJUT_OJ1176
- 网站设计经验
- 1218. 纪念邮票
- linux RamDisk 使用简介
- CRM学习网站(IBM)
- 永远不要低估一颗总冠军的心
- Oracle存储过程的加密
- 恢复VS2005配置