zoukankan      html  css  js  c++  java
  • MFC学习笔记——自定义消息的使用 .

    简单概要

    windows的消息机制在前面的几已经介绍过了,今天来学习一下自定义消息

    预备知识

    看完前几章的文章。

    具体步骤

    新建一个工程,名称为“MyMessage”,使用 Unicode 编码。具体界面可以如下:

    在界面设计处右击选择类向导,添加自定义信息。

    添加完成之后就会在“现有处理程序”出现刚才的消息,点击“编辑代码”可以进入编辑代码状态。

    这是自动生成的代码

    我们会发现,我们这编译程序是编译失败的,因为我们虽然添加了自定义消息,但是还没有定义这个消息的ID。Visual Studio 不会给我们自动添加消息ID。
    如果你的Visual Studio中也装有 visual assist 的话,你就会发现在如下图中有一个变量定义错误,这就是我们的消息。

    下面让我们自定义一下这个消息。打开工程对话框的dlg.h,就是对话框的头文件。然后在最上面添加如下代码:

    1. // 定义一下我的消息代码 至于为什么会用WM_USER+1,请看百度百科   
    2. // WM_USER_百度百科 http://baike.baidu.com/view/4146980.htm   
    3. #define WM_MY_MESSAGE WM_USER+0x001  
    此时程序就可以编译通过了,然后在添加一些测试代码。如在按钮上添加如下代码:
    1. void CMyMessageDlg::OnBnClickedBtnSendmessageToMe()  
    2. {  
    3.     // SendMessage的具体详解请见百度百科   
    4.     // SendMessage_百度百科   http://baike.baidu.com/view/1080187.htm   
    5.     SendMessage(WM_MY_MESSAGE);  
    6. }  
    另外在消息接受的代码处修改为:
    1. afx_msg LRESULT CMyMessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)  
    2. {  
    3.     MessageBox(_T("接受的我的自定义消息!"),_T("提示"),MB_ICONINFORMATION);  
    4.     return 0;  
    5. }  
    这样我们点击给自己发送消息就可以看到程序自己给自己发的消息了。

    总结拓展

    SendMessage 不仅可以给自己发送消息,而且还可以为其他程序发送消息。可以尝试一下给其他程序发送消息。

    Demo下载


    点击下载:点击下载
  • 相关阅读:
    Flink Application Development DataStream API Execution Mode (Batch/Streaming)- Flink应用程序开发DataStream API执行模式(批/流)
    Flink Application Development DataStream API Overview
    Flink Concept Stateful Stream Processing -Flink概念有状态流处理
    Hdfs原理
    Leetcode 763 划分字母区间
    406. 根据身高重建队列
    贝叶斯统计概要(待修改)
    蒙特卡罗方法
    马尔科夫链蒙特卡罗方法(MCMC)
    Leetcode452. 用最小的箭引爆气球
  • 原文地址:https://www.cnblogs.com/jinsedemaitian/p/5589119.html
Copyright © 2011-2022 走看看