如何用代码动态添加控件

如何用代码动态添加控件
作者: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();//销毁控件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值