文档章节

增加自定义消息的步骤

Amamatthew
 Amamatthew
发布于 2014/06/21 11:00
字数 300
阅读 12
收藏 0
点赞 0
评论 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
粉丝 68
博文 719
码字总数 76443
作品 0
厦门
后端工程师
vc6.0添加自定义用户消息的基本过程

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

长平狐 ⋅ 2012/11/01 ⋅ 0

Android热修复实践应用--AndFix

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

Common1140 ⋅ 2016/03/17 ⋅ 0

禅道 9.6 版本发布,新增 webhook、积分和多人任务

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

炒蚕豆吃蹦豆 ⋅ 2017/11/08 ⋅ 6

VC2010中自定义消息

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

Chinayu2014 ⋅ 2017/10/07 ⋅ 0

部署ADFS高可用环境并集成Office365之ADFS高可用等配置(三)

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

没钱瞎逛逛 ⋅ 05/07 ⋅ 0

进程通信——使用WM_COPYDATA消息通信

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

ryany ⋅ 2011/02/24 ⋅ 0

NullFeng/JsValidate

JsValidate 项目介绍 这是一个非常迷你的数据验证器,至于迷你到那种程度,就不形容了,一看便知! 兼容 AMD 和 CMD 规范 核心代码50+行 绝对轻量级(确定绝对?) 支持单个数据和数据批量验...

NullFeng ⋅ 前天 ⋅ 0

怎样编写Apple Push Notification服务器

iPhone OS 3.0一个引入注目的新特性是push notifications(推送通知),它允许向已安装相关应用程序的各设备直接发送消息。苹果在新闻提示或IM应用中展示了此特性,它也十分完美地适合于我们...

长平狐 ⋅ 2012/08/13 ⋅ 1

通过“四大行为”对WCF的扩展[实例篇]

为了让读者对如何利用相应的行为对WCF进行扩展有个深刻的认识,在这里我提供一个简单的实例演示。本实例模拟的场景是这样的:我们创建一个支持多语言的资源服务,该服务旨在为调用者提供基于...

长平狐 ⋅ 2012/09/04 ⋅ 0

J-IM 2.0.0 发布,不仅仅是单机百万更有集群支撑

J-IM 2.0.0 发布了,J-IM 是一个用 JAVA 语言,基 于t-io 开发的轻量、高性能、支持几十万至百万在线用户的IM(即时通讯)框架,它的主要目标降低即时通讯门槛,使用者基于它可以极快速、低成本的...

轨迹_ ⋅ 05/28 ⋅ 23

没有更多内容

加载失败,请刷新页面

加载更多

下一页

分布式数据库中间件DDM的实现原理

随着数据量不断增大,传统的架构模式难以解决业务量不断增长所带来的问题,特别是在业务成线性、甚至指数级上升的情况。此时我们不得不通过水平扩展,把数据库放到不同服务器上来解决问题,也...

中间件小哥 ⋅ 15分钟前 ⋅ 0

字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8

原作者:阮一峰(ruanyifeng.com),现重新整理发布,感谢原作者的无私分享。 1、引言 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料。 这个问题比我想象的复杂,午饭...

JackJiang- ⋅ 21分钟前 ⋅ 0

Spring Cloud构建微服务架构:服务消费(基础)

使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient、这里我们即将介绍的LoadBalancerClient等。对于这些接口的定义我们在上一篇介...

itcloud ⋅ 22分钟前 ⋅ 0

MaxCompute产品最新进展 -- 从马力到计算力

摘要:本文从马力作为功率衡量标准为切入点,介绍了大数据领域的计算力衡量标准TPCBB以及MaxCompute2.0在Big Bench上的卓越表现。同时详细地分享了取得优异成绩背后的产品在最新有哪些进展,...

猫耳m ⋅ 22分钟前 ⋅ 0

Linux系统

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Linux系统: Unix:是C语言转做出来的,最早的网...

凯哥学堂 ⋅ 22分钟前 ⋅ 0

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

13.1 设置更改root密码 启动MySQL数据库 [root@linux-10 ~]# /etc/init.d/mysqld startStarting MySQL SUCCESS! 由于MySQL的相关命令的所在路径不在系统的环境变量中,因此需要将路径添...

影夜Linux ⋅ 25分钟前 ⋅ 0

jeesite shiro+redis实现cache和session共享

jeesite这个开源框架本身集成的有shiro+redis来实现cache和session共享,但是需要修改一下文件配置即可 首先找到spring-context-shiro.xml文件 找到bean id为sessionDAO,将其修改为如下 <!...

wangxujun59 ⋅ 25分钟前 ⋅ 0

基本JNI搭建

1、编写Java代码 首先我们需要编写自己的java代码 public class Hello { static{ System.loadLibrary("hello-jni"); } public native String sayHello();} 2、把...

国仔饼 ⋅ 27分钟前 ⋅ 0

MaxCompute产品最新进展 -- 从马力到计算力

摘要:本文从马力作为功率衡量标准为切入点,介绍了大数据领域的计算力衡量标准TPCBB以及MaxCompute2.0在Big Bench上的卓越表现。同时详细地分享了取得优异成绩背后的产品在最新有哪些进展,...

阿里云云栖社区 ⋅ 31分钟前 ⋅ 0

AppDelegate 设置Root相关

self.window = UIWindow.init(frame: UIScreen.main.bounds) self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() self.window?.rootViewController = RootTabB......

west_zll ⋅ 39分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部