利用SubclassDlgItem函数动态连接控件和控件对象
来源:互联网 发布:淘宝阿里健康是真的吗 编辑:程序博客网 时间:2024/06/05 06:45
要在程序中创建新设计的控件,显然不能用自动创建的办法,因为对话框模板对新控件的特性一无所知.程序可以用手工方法创建控件,在调用派生类的Create函数时,派生类会调用基类的Create函数创建控件.用Create函数创建控件是一件比较麻烦的工作,程序需要为函数指定一大堆的控件风格以及控件的坐标和ID.特别是控件的坐标,没有经验的程序员很难确切地安排控件的位置和大小,往往需要反复调整.利用MFC的CWnd::SubclassDlgItem提供的动态连接功能,可以避免Create函数的许多麻烦,该函数大大简化了在对话框中创建派生控件的过程. 在用手工方法创建控件时,先要构建一个控件对象,然后再用Create函数在屏幕上创建控件窗口,也就是说,控件的创建工作是由控件对象完成的.动态连接的思路则不同,SubclassDlgItem可以把对话框中已有的控件与某个窗口对象动态连接起来,该窗口对象将接管控件的消息处理,从而使控件具有新的特性.SubclassDlgItem函数的声明为 BOOL SubclassDlgItem( UINT nID, CWnd* pParent ); 参数nID是控件的ID,pParent是指向父窗口的指针.若连接成功则函数返回TRUE,否则返回FALSE. 综上所述,要在程序中使用派生控件,应该按下面两步进行: 在对话框模板中放置好基类控件. 在对话框类中嵌入派生控件类的对象. 在OnInitDialog中调用SubclassDlgItem将派生类的控件对象与对话框中的基类控件相连接,则这个基类控件变成了派生控件.
例如,如果要在对话框中使用新设计的按钮控件,应先在对话框模板中的合适位置放置一个普通的按钮,然后,在OnInitDialog函数中按下面的方式调用SubclassDlgItem即可:
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_MyButton.SubclassDlgItem(IDC_MYBUTTON, this);
return TRUE;
}
http://blog.pfan.cn/xishuai/30533.html
- 利用SubclassDlgItem函数动态连接控件和控件对象
- 利用SubclassDlgItem函数动态连接控件和控件对象
- 动态连接控件和控件对象
- MFC控件的SubclassDlgItem
- VS2005利用TreeView控件和递归函数动态生成树状菜单
- SUBCLASSDLGITEM函数
- SUBCLASSDLGITEM函数
- 利用反射动态添加控件
- 利用反射动态添加控件
- subclassdlgitem 子类化一个MFC的基本控件
- 利用tablerow和tablecell类动态添加textbox控件
- 动态加载用户控件函数
- 网页中的动态控件和静态控件
- VB.NET 串口连接,控件利用AxMSComm
- Android中利用LinearLayout动态添加控件
- Android中利用LinearLayout动态添加控件
- Android中利用LinearLayout动态添加控件
- Android中利用LinearLayout动态添加控件
- 转载 STL中map用法详解
- 认识J2EE规范
- DCOM 遇到错误“登录失败: 未知的用户名或错误密码
- Linux操作系统里查看所有用户
- Hibernate 多对一外键单向关联
- 利用SubclassDlgItem函数动态连接控件和控件对象
- dom4j 使用xpath 解析 persistence.xml 出现xmlns后不能解析问题解决
- 让一维指针指向二维数组空间的方法!
- Javascript中最常用的55个经典技巧
- errno是什么?
- J2EE规范的核心要素 - 概述
- Hibernate 多对一连接表单向关联
- 同学会,当年的班花终于上了我的车!
- SQLServer 中处理两个日期相减得到天数