MFC中,如何自定义用户消息
1、用处
在多个类之间传递消息。当需要响应用户操作,本类却无法实现时,可以向系统发出消息。然后让系统中的需要的位置实现它。
2、方法
2.1定义这个消息,并让拥有者发送这个这个消息,传递一个整型参数
这里才需要发送消息的地方(实现文件,cpp文件中) 添加以下代码:
//--让父窗口去更改值
int nrow();
GetOwner()->SendMessage(WM_CHANGED,,nrow);
2.2 这里的 WM_CHANGED 需要用户自己定义值, MFC中给用户自定义消息预留了消息字段 。
在(声明文件,H文件中),添加以下代码:
#define WM_CHANGED WM_USER+3//--WM_USER 是系统宏
2.3 在需要响应这个消息的队列中,添加对这个消息的声明及相应实现
在cpp文件中,添加以下代码
BEGIN_MESSAGE_MAP(CWordReportView, CFormView)
ON_MESSAGE(WM_CHANGED,OnChangeSubTargetName)
END_MESSAGE_MAP()
2.4 对用户自定义消息的实现函数进行 函数声明和函数实现
在头文件中声明
afx_msg LRESULT OnChangeSubTargetName(WPARAM wParam, LPARAM lParam);
在 cpp文件中实现
LRESULT CWordReportView::OnChangeSubTargetName(WPARAM wParam, LPARAM lParam)
{
CString str("响应了用户自定义消息");
afxMessageBox(str); return ;
}
说明:
用户自定义消息本质上就是为类添加一个成员函数,然后将这个函数注册为消息,使得其可以被触发而不是要手动调用。
MFC中,如何自定义用户消息的更多相关文章
- MFC中 CDateTimeCtrl 自定义日期显示格式
MFC里的DateTimePicker控件 ,通过属性来设置的话只能设置两种显示方式,要么日期,要么时间,很多时候我们需要在一个DateTimePicker里日期和时间同时显示. 这个时候只能通过自定 ...
- MFC中 自定义类访问主对话框控件的方法
之前一直在找有木有好点的方法.现在终于被我找到,收藏之~~~~~~ 在使用mfc的时候经常遇到自定义类访问主对话框控件的问题,例如自定义类中的方法要输出一段字符串到主对话框的EDIT控件.控制对话框的 ...
- MFC中afx_msg是什么,afx_msg void function()是什么意思
应用程序框架产生的消息映射函数例如:afx_msg void OnBnClickedButton1(); 其中 afx_msg为消息标志,它向系统声明:有消息映射到函数实现体:而在map宏定义中,就有 ...
- MFC中添加OpenGL
WINDOWS下展示OpenGL有多种形式: MFC 或 win32,该如何向MFC中添加OpenGL?下面是介绍最简单OpenGL框架. 1.首先通过VS建立MFC应用程序-MyOpenGL,选择单 ...
- MFC中用户自定义类响应自定义消息
这篇技术文章不是讨论经典的MFC中的消息工作机理的,讨论消息工作原理.方式和路径的文章在网上和书本中随处可见.网上众多的讨论都是关于如何响应并进行用户自定义消息映射的:网上还有一些文章介绍如何在自定义 ...
- MFC中获取各个窗口之间的句柄或者指针对象的方法
MFC在非常多的对话框操作中,我们常常要用到在一个对话框中调用还有一个对话框的函数或变量.能够用例如以下方法来解决. HWND hWnd=::FindWindow(NULL,_T("S ...
- 【VS开发】【CUDA开发】如何在MFC中调用CUDA
如何在MFC中调用CUDA 有时候,我们需要在比较大的项目中调用CUDA,这就涉及到MFC+CUDA的环境配置问题,以矩阵相乘为例,在MFC中调用CUDA程序.我们参考罗振东iylzd@163.com ...
- UWP中实现自定义标题栏
UWP中实现自定义标题栏 0x00 起因 在UWP开发中,有时候我们希望实现自定义标题栏,例如在标题栏中加入搜索框.按钮之类的控件.搜了下资料居然在一个日文网站找到了一篇介绍这个主题的文章: http ...
- Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数
10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...
随机推荐
- rm命令
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西 ...
- mootools里选择器$,$$,$E,$ES等的区别
区别就是 $和$$都是1个参数, $适用于ID,或者ID代表的对象 $$适用于CSS选择器 $E和$ES,有2个参数,第二个参数是可选参数代表(filter,即某个ID范围里的元素) $E('inpu ...
- 【jmeter】JMeter函数学习
JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functionName(var1,var2,var3)},-functionName匹配函数 ...
- Redis安装创建
安装 下载,解压和安装: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz $ tar xzf redis-2.8.17.tar ...
- php时间日期处理
php日期函数: 首先想到的就是date(),time(),strtotime(),mktime() strtotime() strtotime()函数用于将英文文本字符串表示的日期转换为时间戳,为 ...
- golang的连接池例子
github.com/jolestar/go-commons-pool 测试代码 package main import ( "github.com/jolestar/go-commons- ...
- Android框架
http://blog.163.com/vicent_zxb/blog/static/1858861312011488262665/ (一)Android系统框架详解 Android采用分层的架构,分 ...
- linux awk命令
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- java学习笔记(二)之数据部分
数据类型 java数据类型 基本数据类型 数值型 整型byte/short/int/long 浮点型/double/float 字符型char 布尔型boolean 取值true f ...
- Qt属性表控件的使用 QtTreePropertyBrowser
属性表是vs2003时引入的的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表. 下图是Qt Creator里的属性表 ...