MFC|MFC 子窗口向父窗口传递消息

概述 【MFC|MFC 子窗口向父窗口传递消息】子窗口向父窗口传递消息。
重要函数 PostMessage

  • 功能
    把消息投放到线程的消息队列
  • 函数原型
    BOOL PostMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );

  • 函数参数
    • hWnd 接收消息的窗口句柄
    • Msg 消息 ID
    • wParam 通常用来存储小段信息,如标志
    • lParam 通常用于存储消息所需的对象
步骤
  • 定义消息 ID
    #define WM_MESSAGE (WM_USER + 100)

    消息 ID 名称可以自定义
  • 发送消息
    HWND hWndDlgParent = ::GetParent(); // 获取父窗口句柄 ::PostMessage(hWndDlgParent, WM_MESSAGE, 0, m_nResult);

  • 添加宏定义
    BEGIN_MESSAGE_MAP(CDlgTest, CDialog) ON_MESSAGE(WM_MESSAGE, RecvMessage) END_MESSAGE_MAP()

  • 添加消息响应函数
    afx_msg LRESULT RecvMessage(WPARAM wParam, LPARAM lParam); LRESULT CDlgTest::RecvMessage(WPARAM wParam, LPARAM lParam) { // TODO() return 0; }

    推荐阅读