zoukankan      html  css  js  c++  java
  • MFC 自定义消息(类向对话框类传递自定义消息)

    创建的对话框类为 CMFCTEST2Dlg

    在 MFCTEST2Dlg.h : 头文件 定义

    #define WM_MYMESSAGE (WM_USER + 100)  //step 1
    
    ....
    
    // 生成的消息映射函数
        virtual BOOL OnInitDialog();
        afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
        afx_msg void OnPaint();
        afx_msg HCURSOR OnQueryDragIcon();
        afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);//自定义消息
        DECLARE_MESSAGE_MAP()

    在 MFCTEST2Dlg.cpp 中

    BEGIN_MESSAGE_MAP(CMFCTEST2Dlg, CDialogEx)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_BN_CLICKED(IDOK, &CMFCTEST2Dlg::OnBnClickedOk)
        ON_MESSAGE(WM_MYMESSAGE,&CMFCTEST2Dlg::OnMyMessage)//自定义消息
        ON_BN_CLICKED(IDC_ADD, &CMFCTEST2Dlg::OnBnClickedAdd)
    END_MESSAGE_MAP()
    
    。。。。。。。
    
    
     LRESULT  CMFCTEST2Dlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
    {
       MessageBox(_T("recv msg success"));
       for(int i=0;i<100;i++)
       {
           Sleep(1800);
       pbar->StepIt();
       }
        //添加自己的消息处理
       // ……
        return 0;   
    }

    在自定义类CpublishPoint 中

    在PublishPoint.h 头文件中

    #define WM_MYMESSAGE (WM_USER + 100)  //必须与接收消息端一致

    在 PublishPoint.cpp 中

    void  CPublishPoint::TestMessage(CWnd* pWnd)
     {
    
         pWnd->SendMessage(WM_MYMESSAGE, 0, 0);
    
     }

    CWnd 为 对话框句柄

    对话框中的句柄获取方式:

     CWnd* pWnd = CWnd::FindWindow(NULL,_T("MFCTEST2"));  //后面为对话框caption属性之

    将 pWnd 传递给 CpublishPoint 类

     CPublishPoint *cpp=new CPublishPoint();
     cpp->TestMessage(pWnd);

  • 相关阅读:
    Nginx安装配置
    HTTPS原理(三次握手)
    Linux常用指令
    MVC思想
    MySQL简介
    PHP面向对象(二)
    PHP面向对象(一)
    php循环用法
    如何删掉git版本库master分支的第一个commit
    韦东山嵌入式Linux学习笔记08--中断体系结构
  • 原文地址:https://www.cnblogs.com/marky/p/3723034.html
Copyright © 2011-2022 走看看