对话框程序动态生成按钮数组并响应点击消息

转载 2013年12月04日 20:38:24

首先建立个基于对话框的MFC应用程序工程TestDlg,接下来

一、动态创建按钮

      此段代码可放在对话框的OnInitDialog()里,也可放在其他地方

  1. int cntButton = 5;  
  2. CButton *pButton = new CButton[cntButton];  
  3. for(int i = 0; i < cntButton; i++)  
  4. {  
  5.     // 按钮位置  
  6.     CRect rect;  
  7.     rect.top = 0;  
  8.     rect.bottom = 30;  
  9.     rect.left = i * 100 + 5;  
  10.     rect.right =i*100 + 100;  
  11.     // 按钮标题  
  12.     CString strCaption;  
  13.     strCaption.Format("按钮%d", i);  
  14.     // 生成按钮  
  15.     pButton[i].Create(strCaption,   
  16.         WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,   
  17.         rect,   
  18.         this,   
  19.         3000 + i);                //资源ID 可以"#define ID_BTN 3000" 此处就是"ID_BTN + i"  
  20. }  
 二、添加对话框类CtestDlgDlg的成员函数OnBnClickedButtonTest,作为点击按钮时的响应函数!

  1. // 声明  
  2.     afx_msg void OnBnClickedButtonTest(UINT uID);  
  3. // 定义  
  4. void CtestDlgDlg::OnBnClickedButtonTest(UINT uID)  
  5. {  
  6.     CString strIndex;  
  7.     strIndex.Format("%d", uID);  
  8.     AfxMessageBox(strIndex);  
  9. }  
 

三、添加映射ON_CONTROL_RANGE

  1. // 加在在BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间  
  2.     ON_CONTROL_RANGE(BN_CLICKED,  // 点击消息   
  3.     3000,                       // 按钮控件数组第一个ID  
  4.     3004,                       // 按钮控件数组最后一个ID(例子中是5个,3000~3004)  
  5.     &CtestDlgDlg::OnBnClickedButtonTest)  // 响应函数  

MFC动态创建按钮及添加消息响应

动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,...
  • u011672712
  • u011672712
  • 2016年06月09日 01:05
  • 1391

C#-—单击按钮可以弹出对话框

/**烟台大学计算机学院学生 *All right reserved. *文件名称:C#-—单击按钮可以弹出对话框 *作者...
  • u012370105
  • u012370105
  • 2014年10月30日 21:58
  • 1359

【MFC】基于对话框的键盘响应

VC中键盘事件处理主要是通过对相应的消息的响应,这些事件有如:WM_CHAR、   WM_KEYDOWN、WM_KEYUP等他们分别对应OnChar、OnKeyDown、OnKeyUp消息处  ...
  • zdhlwt2008
  • zdhlwt2008
  • 2015年06月30日 13:12
  • 2363

MFC 动态创建按钮及响应按钮消息

内容大纲 1、CButton类对象的成员方法 2、重视GetBitmap,GetCursor,GetIcon,GetState,DrawItem方法 3、动态添加按钮 4、字符串"ff"在内存中也以f...
  • zlj576045053
  • zlj576045053
  • 2013年10月20日 19:05
  • 859

java点击按钮弹出对话框

import java.awt.Dimension; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java...
  • lvyuan30276
  • lvyuan30276
  • 2014年08月29日 21:50
  • 4767

javascript动态生成按钮并绑定点击事件

前一个多月公司的前端开发人员离职,公司一直在招前端,基本上每天都有几个来面试的人,就这个面试频率,也才招了一个多月才招到。绝大部分都是死在了一道上机面试提上。题目很基础,但也很考基本功,基本上才3%左...
  • u013692888
  • u013692888
  • 2016年10月07日 17:28
  • 11948

MFC 对话框Dialog响应键盘事件

在对话框程序中有时需要响应键盘和鼠标事件,MFC的对话框继承于CWnd窗口类,总结了如下几种可能的处理方式: 1,最直观的想法是重写类中的虚拟响应函数,这些响应函数有: 键盘相关:ON_WM_CHAR...
  • sy10086
  • sy10086
  • 2017年01月08日 10:08
  • 674

asp.net C#动态添加创建生成button按钮控件没有触发执行响应click绑定事件处理

问题描述: 在aspx页面动态生成一个控件,比如点击按钮a生成按钮b,然后再点击按钮b的时候,无论如何也进不到按钮b的Click事件里。 网上的答案基本不对,要么就是演示得特复杂难看懂,现在我写一个最...
  • hs987654321
  • hs987654321
  • 2014年02月13日 01:31
  • 3699

MFC中对话框的各种消息触发时间

只有清楚的了解应用程序的执行顺序,才能在编写代码的时候知道,在什么时候应该执行什么,以及在什么地方该处理什么。 一、MFC应用程序中处理消息的顺序 1. AfxWndProc()       ...
  • vigoss331
  • vigoss331
  • 2016年09月20日 15:21
  • 946

使用MFC 发送消息模拟按钮按下事件

有时我们需要这么做, 手动模拟按钮按下的事件, 让程序做出与按钮真的按下时一样的响应.    设按钮ID为ID_BTN_OK, 当前Dialog窗口.    实际上系统并不能区分按钮是真的...
  • u012782049
  • u012782049
  • 2014年01月16日 20:15
  • 3568
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对话框程序动态生成按钮数组并响应点击消息
举报原因:
原因补充:

(最多只允许输入30个字)