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);

  • 相关阅读:
    Uva11235
    Uva11300/BZOJ1045/BZOJ1465/BZOJ3292
    树形背包模板
    Miller-Rabin素性测试
    BZOJ1500 : [NOI2005]维修数列-fhq_Treap
    COGS2421 [HZOI 2016]简单的Treap
    用 fhq_Treap 实现可持久化平衡树
    hdu 1010(DFS) 骨头的诱惑
    hdu 1026(BFS+输出路径) 我要和怪兽决斗
    hdu 1072(BFS) 有炸弹
  • 原文地址:https://www.cnblogs.com/marky/p/3723034.html
Copyright © 2011-2022 走看看