zoukankan      html  css  js  c++  java
  • MFC自定义消息

    扩展https://www.cnblogs.com/findumars/p/3948427.html

    定义消息或资源中添加

    #define WM_MYMESSAGE_XYG (WM_USER + 7943)
    

    头文件中添加消息处理函数

    class CVMDSModelView
    {
    protected:
    ...
        afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
    ...
    DECLARE_MESSAGE_MAP()
    

    cpp中添加消息映射处理

    BEGIN_MESSAGE_MAP(CVMDSModelView, CScrollView)
      ON_MESSAGE(WM_MYMESSAGE_XYG, OnMyMessage)
    END_MESSAGE_MAP()
    

    实现消息处理函数

    其中WPARAM wParam,LPARAM lParam二者为指针,所以发送自定义消息时如果想传相关参数,可以将参数的地址赋给这2个参数之一即可

    LRESULT CVMDSModelView::OnMyMessage(WPARAM wParam, LPARAM lParam)
    {
      AfxMessageBox(_T("自定义消息!"));
      return 0;
    }
    

    自定义消息触发

    PostMessage()与SendMessage()函数的区别是:SendMessage()的消息直接发给窗口并调用相应的消息响应函数,消息不进消息队列,但直到消息响应函数处理完后SendMessage()才返回。而PostMessage()将消息放入消息队列后立即返回。

    // !!!在传递参数时一定要注意如果是传递局部变量一定是用SendMessage()函数,使用PostMessage当消息响应函数捕获到消息时局部变量可能已经被释放
    SendMessage(WM_MYMESSAGE_XYG, 0, 0) 或
    PostMessage(WM_MYMESSAGE_XYG, 0, 0); 
    
  • 相关阅读:
    BZOJ1000 A+B Problem
    网络最大流
    树形结构
    BZOJ2521 最小生成树 最小割
    HDU5266 LCA 树链剖分LCA 线段树
    BZOJ3991 寻宝游戏 LCA 虚树 SET
    深度优先搜索DFS
    斯特林数
    Noip2017 普及 T3 Chess
    键盘自动机
  • 原文地址:https://www.cnblogs.com/xiongyungang/p/12012101.html
Copyright © 2011-2022 走看看