zoukankan      html  css  js  c++  java
  • MFC中,如何自定义用户消息

    1、用处

       在多个类之间传递消息。当需要响应用户操作,本类却无法实现时,可以向系统发出消息。然后让系统中的需要的位置实现它。

    2、方法

    2.1定义这个消息,并让拥有者发送这个这个消息,传递一个整型参数 

    这里才需要发送消息的地方(实现文件,cpp文件中) 添加以下代码:

    1 //--让父窗口去更改值 
    2 int nrow(0); 
    3 GetOwner()->SendMessage(WM_CHANGED,0,nrow);

    2.2 这里的 WM_CHANGED 需要用户自己定义值, MFC中给用户自定义消息预留了消息字段 。

    在(声明文件,H文件中),添加以下代码:

    1 #define WM_CHANGED WM_USER+3//--WM_USER 是系统宏

    2.3  在需要响应这个消息的队列中,添加对这个消息的声明及相应实现

        在cpp文件中,添加以下代码

    1 BEGIN_MESSAGE_MAP(CWordReportView, CFormView)
    2 ON_MESSAGE(WM_CHANGED,OnChangeSubTargetName)
    3 END_MESSAGE_MAP()

    2.4 对用户自定义消息的实现函数进行 函数声明和函数实现

      在头文件中声明

    1  afx_msg LRESULT OnChangeSubTargetName(WPARAM wParam, LPARAM lParam);

    在 cpp文件中实现

    1 LRESULT CWordReportView::OnChangeSubTargetName(WPARAM wParam, LPARAM lParam)
    2 {
    3     CString str("响应了用户自定义消息");
    4     afxMessageBox(str);      5     return 0;
    6 }

       说明:

    用户自定义消息本质上就是为类添加一个成员函数,然后将这个函数注册为消息,使得其可以被触发而不是要手动调用。

  • 相关阅读:
    Redis-持久化
    Redis-Sort命令
    Redis-ZSet常用命令
    Redis-Hash
    Redis-Set常用命令
    Redis-List常用命令
    Redis-String常用命令
    访问控制
    c++之旅:多态
    c++之旅:类型的强制转换
  • 原文地址:https://www.cnblogs.com/hans-201506/p/4598100.html
Copyright © 2011-2022 走看看