动态创建控件

博客以动态创建一组按钮为例,介绍了在MyDialog中创建按钮的步骤,包括在.h文件声明、.cpp文件定义ID、动态生成按钮并设置位置、大小、Caption等。还说明了加入消息映射的方法,如在.h文件声明函数、.cpp文件添加映射和实现函数。

假设有一个Dialog:MyDialog,以动态创建一组按钮为例说明。
1。在MyDialog.h中加入声明:
protected:
 CButton m_btnWork[5]; //生成5个按钮

2。在MyDialog.cpp头部加入:
#define IDC_BUTTON_WORK 2005

3。在MyDialog.cpp中需要动态生成按钮的地方加入:
 CRect rect; //按钮的位置和大小
 rect.left = 20;
 rect.right = rect.left + 100;
 rect.top = 20;
 rect.bottom = rect.top + 20;

 for(int i=0;i<5;i++){

  //确保按钮不会重合
  rect.top+=30;
  rect.bottom+=30;

  //动态创建按钮
  m_btnWork[i].CreateEx(NULL,
   _T("BUTTON"), //说明是生成BUTTON,根据生成的东西不同,要作相应的改动
   NULL,       
   WS_CHILD,
   rect,
   this,
   ID_MYBTN+i);//生成edit控件

  //设置按钮的Caption
  CString text;
  text.Format("button%d",i);
  SetDlgItemText(IDC_BUTTON_WORK+i,text);
  
  //显示控件
  m_btnWork[i].ShowWindow(SW_SHOW);
 }

 如果要加入消息映射,则要:
1。在MyDialog.h中加入:
 afx_msg void OnMyButtonClicked();

2。在MyDialog.cpp中,
 BEGIN_MESSAGE_MAP(CDynamicCreateDlg, CDialog)

 END_MESSAGE_MAP()
之间加入:
 ON_BN_CLICKED(IDC_BUTTON_WORK, OnMyButtonClicked)

3。在MyDialog.cpp中加入:
 void CMyDialog::OnMyButtonClicked()
 {
  // TODO: Add your control notification handler code here
  MessageBox("Hello");
 }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值