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

VC++
简简单单:三个函数实现框架菜单自绘
如何更改其它程序 ListView 控件中某个 Item 的内容
构建仪表、图表控件的绘制框架
QQ2006 界面编程之鸡蛋里挑骨头
自动隐藏停泊窗体实现
WIN XP关机的特效实现
程序界面多模式显示
QQ界面的模拟实现(下)
QQ界面的模拟实现(上)
简易方法淡入淡出启动画面
如何选中其他程序ListView控件中的某个Item
用C#实现office2003风格的菜单组件
修改一个完全颜色的CListCtrl类
在你的程序中如何使用CButtonST类
用键盘操作静态链接打开应用程序中的URLs
完美实现真彩自绘菜单
创建客户区窗口,列表框之间项的拖拽操作
C-Visual Toolbar 1.0
MFC 应用程序中的菜单提示信息
位图进度条

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 54 ::
收藏到网摘: 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();//销毁控件 

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