MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下。

1.创建对象
    用new进行动态创建一个对象。然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxGetMainWnd()获取的父窗口对象指针。最后一个窗口ID先自定义一个ID名。

2.定义ID宏
    在cpp文件中,定一个创建对象时自定义的ID的宏,给予一个数字,不要和系统资源的ID值重复。如#define ID_DY_OK 10000

3.消息映射
    在VS2010中的cpp文件中的BEGIN_MESSAGE_MAP之间写上映射语句。可以参照静态生成的消息映射写。括号内第一个写上自定义的ID名,后面写上响应的函数地址,以&取地址,&后面紧跟函数名,函数名需要写清楚所属类。因此,一个类中的消息可以在另外一个类中进行处理,只要消息映射写上要处理消息的类名以及函数名,并在处理消息的类中进行消息处理函数的声明。
    而在VC6.0中,在//{{AFX_MSG_MAP()中间是类向导自动生成的,里面的消息处理都是静态的控件的消息处理。如果要进行动态控件的消息处理,则要将消息映射写在END_MESSAGE_MAP()之间的//}}AFX_MSG_MAP之后的中间区域。消息映射的括号内的第二个参数只写函数名即可。当然,此时的函数是本类中的,这是默认的情况。不需要写&取址符,函数名就表示函数地址。如果要用其他类中的函数进行处理,则只需要加上类名作用域解析操作符和响应的函数名即可。

4.消息声明
    在头文件中,声明消息处理函数。函数的声明和普通的函数声明一样,此外,还要在声明前面加上afx_msg作为消息响应函数的声明标志。

5.消息处理
    在cpp文件中,和普通函数一样处理函数定义,函数可以有参数也可以没有参数,如果有参数,参考静态控件消息处理函数的参数样式写和处理。

当然,有一个比较快速的方法就是,动态创建好控件后,然后用向导创建静态的控件的消息处理,然后将动态创建的控件ID值和静态的设置成一样的,然后删掉静态控件。如果是VC6.0则要将消息映射拿到//{{AFX_MSG_MAP()之外END_MESSAGE_MAP()之前即可。但是建议用上面的手动添加,灵活且能够深刻理解消息处理机制。MFC动态创建控件以及响应动态创建的控件的事件的实现方法和原理。MFC动态创建控件以及响应动态创建的控件的事件的实现方法和原理。MFC动态创建控件以及响应动态创建的控件的事件的实现方法和原理。MFC动态创建控件以及响应动态创建的控件的事件的实现方法和原理。MFC动态创建控件以及响应动态创建的控件的事件的实现方法和原理。MFC动态创建控件以及响应动态创建的控件的事件的实现方法和原理。

MFC动态创建控件并响应事件代码实现过程相关推荐

  1. MFC中动态创建控件以及添加事件响应

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  2. MFC中动态创建控件以及事件响应实现方法

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  3. MFC vc++ 中CTreeContrl如何自定义实现鼠标单击或双击响应事件 ,即重写类似于控件的响应事件或消息

    代码部分摘录自"天上的猩猩的专栏":https://blog.csdn.net/qq_23992597/article/details/51006920#commentsedit ...

  4. 在.NET上如何根据字符串动态创建控件

    在.Net上用字符串动态创建控件是通过反射来实现. 首先,利用System.Type.GetType方法,获得字符串中指定的控件的类型实例. 这里需要注意这个字符串的语法,根据msdn的解释: 按名称 ...

  5. ASP.NET动态创建控件之绝境求生

    来源:中国IT实验室 在ASP.NET中动态创建一个控件总是不那么顺利,特别是当对页面的Life Cycle不是那么了然的情况下!这里简单描述一下要求,然后提供一个解决方案,大家看看有没有更好的Ide ...

  6. C++ Builder 动态创建控件

    当开发类似解释程序或实现可视化操作功能等一类的应用程序时,都需要动态地创建控件(对象),而且还要为这些控件添加适当的事件处理程序,下面将介绍在C++Builder中如何实现基本的实现框架. 动态创建控 ...

  7. asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性

    asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性 就是不用 XXX.Visible = false;  // true 因为这样该容器及其子控件会彻底的从页面上消 ...

  8. C# 动态创建控件时注册Name属性

    动态创建控件 1.  容器控件 .RegisterName("Name",要注册的控件) //注册控件 2.  容器控件 .FindName("Name") a ...

  9. Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)

    Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...

最新文章

  1. Oracle Ora 错误解决方案合集
  2. 《图解HTTP》读书笔记(四:HTTP方法)
  3. cxGrid 使用指南 1
  4. yum php devel_yum源里找不到 php54w-devel,求可用yum源
  5. ionic 状态栏显示异常 statusBar
  6. Premiere Pro CC2017教程(一)
  7. React学习:生命周期、过滤器、event、axios-学习笔记
  8. 微信小程序----全局变量
  9. 区域赛铜牌专题(一)
  10. 最大功率点跟踪_ADI公司推出集成最大功率点跟踪和I2C的80V降压升压电池充电控制器...
  11. centos右上角wired图标消失有效解决方案【转载】
  12. java基础案例教程试题,Java基础案例教程-中国大学mooc-试题题目及答案
  13. 2018-08-13 谷歌 protobuf-lite:3.0.1
  14. SQL2005学习(三十二),Group by
  15. 万年历matlab算法,万年历算法(万年历算法和分析)
  16. 敏捷开发scrum模型
  17. Spring Aop(十五)——Aop原理之Advised接口
  18. 使用DW设置网页背景图
  19. 基于51单片机的硬币电子秤的实现
  20. mongodb journal占用磁盘处理

热门文章

  1. Charles学习(三)之使用Map local代理本地静态资源以及配置网页代理在Mac模拟器调试iOS客户端...
  2. 跟牛牛老师学python自动化的第四天
  3. SQL语句统计每天、每月、每年的数据
  4. 新建maven项目更改 web版本
  5. css中如何修改鼠标光标(指针)的样式和颜色
  6. Android自定义顶部栏及侧滑菜单和fragment+viewpag滑动切换的实现
  7. mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)
  8. Winserver-Exception from HRESULT: 0x800A03EC
  9. html5中高德、腾讯、百度 地图api调起手机app
  10. LInux下装jdk