文档章节

增加自定义消息的步骤

Amamatthew
 Amamatthew
发布于 2014/06/21 11:00
字数 300
阅读 12
收藏 0

ClassWizard不允许增加用户自定义消息,所以你必须手工输入。输入后,ClassWizard就可以象处理其它消息一样处理你自定义的消息了。

下面是增加自定义消息的步骤:

第一步:定义消息。开发Windows应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。

第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。

LPESULT   CMainFrame::OnMyMessage(WPARAM   wParam,   LPARAM   lParam) 
{ 
    //   TODO:   处理用户自定义消息 
    //            ... 
          return   0; 
}

第三步:在类头文件的AFX_MSG块中说明消息处理函数:

class   CMainFrame:public   CMDIFrameWnd 
{ 
        //... 
        //   一般消息映射函数 
        protected: 
                //   {{AFX_MSG(CMainFrame) 
                afx_msg   int   OnCreate(LPCREATESTRUCT lpCreateStruct); 
                afx_msg   void  OnTimer(UINT nIDEvent); 
                afx_msg   LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); 
                //}}AFX_MSG 
                DECLARE_MESSAGE_MAP() 
}

 第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。

BEGIN_MESSAGE_MAP(CMainFrame,   CMDIFrameWnd) 
        //{{AFX_MSG_MAP(CMainFrame) 
        ON_WM_CREATE() 
        ON_WM_TIMER() 
        ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) 
        //}}AFX_MSG_MAP 
END_MESSAGE_MAP()

        如果用户需要一个整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。

本文转载自:http://zhidao.baidu.com/question/270913067.html?qbl=relate_question_2&word=%B6%D4%D3%DAMFCappcati...

共有 人打赏支持
Amamatthew
粉丝 67
博文 1050
码字总数 76443
作品 0
厦门
后端工程师
vc6.0添加自定义用户消息的基本过程

在学习过程中遇到要添加用户自定义消息的过程.我觉得书上写的比较散,于是就自己总结了这个基本过程,以为日后备查. 首先弄清楚两点:(1)谁要发送这个消息(2)谁要接受这个消息。 用一个简单...

长平狐
2012/11/01
60
0
Android热修复实践应用--AndFix

一直关注App的热修复的技术发展,之前做的应用也没用使用到什么热修复开源框架。在App的热修复框架没有流行之前,做的应用上线后发现一个小小的Bug,就要马上发一个新的版本。我亲身经历过一...

Common1140
2016/03/17
386
0
禅道 9.6 版本发布,新增 webhook、积分和多人任务

禅道开源版9.6版本正式发布。 新版本中,新增了webhook功能,实现与倍冾、钉钉的消息通知接口;新增禅道操作获取积分的功能; 项目任务新增了多人任务和子任务功能;增强列表页、导航菜单、必...

炒蚕豆吃蹦豆
2017/11/08
1K
6
VC2010中自定义消息

VC中自定义消息步骤如下: 1、打开类向导,添加自定义消息,如下图: 点击“确定”,“确定”关闭向导。 2、在窗口头文件中,添加消息常量 #define WMMYMESSAGE WMUSER + 101 头文件中由向导...

Chinayu2014
2017/10/07
0
0
部署ADFS高可用环境并集成Office365之ADFS高可用等配置(三)

2 登陆验证 https://localhost/adfs/ls/IdpInitiatedSignon.aspx 3登陆助手安装 1.下载microsoft online services登陆助手 2.运行登陆助手安装程序 3.安装完成 4.下载并安装Windows Azure A...

没钱瞎逛逛
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
22分钟前
1
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
28分钟前
3
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
28分钟前
2
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
30分钟前
1
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部