当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 如何用代码动态添加控件

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

VC++ 中的 如何用代码动态添加控件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 43 ::
收藏到网摘: n/a

如何用代码动态添加控件
作者:bzshow

读者层次: VC初学者

在资源编辑器里我们可以方便地在对话框中加入所需控件,比如文本编辑框、列表控件等。但假如我们需要在运行期间动态生成这些控件该怎么做呢?本文就是讲述用代码动态添加控件的方法,并提供示例工程。

下载示例工程 12.5K

程序运行界面如下

为了方便演示,我们先生成一个基于对话框的MFC工程,起名为My

在CMyDlg.h中做下面几个步骤:

public: //加上这个变量 CEdit m_MyEdit;protected: //加上这个函数, 用来响应编辑框改变的事件 afx_msg void OnChangeEdit(); 

在CMyDlg.cpp中做下面几个动作:

//增加这一行,为该编辑框设定ID为1820#define ID_MYEDT 1820在BEGIN_MESSAGE_MAP(CMyDlg, CDialog)下面加入ON_EN_CHANGE(ID_MYEDT, OnChangeEdit) 
添加这一句的作用是将编辑控件内容改变的消息映射到OnChangeEdit函数,你要在CMyDlg.cpp中实现OnChangeEdit()函数;


好了,让我们动态生成控件吧!
m_MyEdit.CreateEx(WS_EX_CLIENTEDGE, // 3D-border外观 _T("EDIT"), NULL, ES_AUTOHSCROLL | ES_LEFT | ES_NOHIDESEL | WS_CHILD, rect, this, ID_MYEDT);//生成edit控件 m_MyEdit.ShowWindow(SW_SHOW); //显示控件m_MyEdit.SetFocus(); //设置焦点//动态删除可以用如下语句GetDlgItem(ID_MYEDT)->DestroyWindow();//销毁控件 

在代码中我们只演示了编辑控件的动态生成方法,其它控件动态生成的方法基本一致,都可以参考这一过程。