文档章节

增加自定义消息的步骤

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
68
0
Android热修复实践应用--AndFix

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

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

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

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

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

Chinayu2014
2017/10/07
0
0
进程通信——使用WM_COPYDATA消息通信

3.4 使用WM_COPYDATA消息通信 对于少量数据可以用WM_COPYDATA方便地实现通信。由于SendMessage()是阻塞的,只有接收方响应了消息,SendMessage()才能返回,否则一直阻塞。所以,对于大量数据...

ryany
2011/02/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解析Node.js通过axios实现网络请求

本次给大家分享一篇node.js通过axios实现网络请求的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 1、使用Npm 下载axios n...

前端攻城老湿
2分钟前
0
0
深入浅出之React-redux中connect的装饰器用法@connect

这篇文章主要介绍了react-redux中connect的装饰器用法@connect详解,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 通常我们需要一...

前端攻城小牛
3分钟前
0
0
详解css BEM书写规范

BEM是基于组件的web开发方法。其思想是将用户界面分隔为独立的块,从而使开发复杂的UI界面变得更简单和快,且不需要粘贴复制便可复用现有代码。BEM由Block、Element、Modifier组成。选择器里...

前端小攻略
19分钟前
2
0
一个centos初始化脚本

概述 就是自己无聊写的一个脚本,欢迎使用,star,fork顺便关注我一波 https://github.com/bboysoulcn/centos 使用方法 这个是给最小化安装的centos使用的,在centos 7.5上测试过,当然其他的...

bboysoulcn
23分钟前
3
0
mybatis 自动维护 createdAt, updatedAt

SpringBoot Mybatis Plus公共字段自动填充功能

youngjdong
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部