MFC用PostMessage传递消息

1.自定义消息ID。

#define WM_MY_MESSAGE (WM_USER+100)         WM_USER为windows系统为非系统消息保留的ID,这里至少要用100,因为其它控件的消息会占用一部分。

2. 定义消息处理函数。

消息处理函数为消息目标类的成员函数。首先应该在.h 文件中声明。这里以主窗口类为例,主窗口类名 CMainDialog,则首先在CMainDialog.h声明消息处理函数。



protected:

afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);




3.在CMainDialog.cpp中实现消息处理函数



LPESULT CMainDialog::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// TODO: 处理用户自定义消息
...
return 0;
}

4.在CMainDialog.cpp中映射消息ID和消息处理函数



BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_TIMER()
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

在创建线程的时候将主窗口句柄作为参数传入线程,就可以用 PostMessage传递消息了。












posted @ 2016-05-12 17:01  水蒸蛋不好吃  阅读(1326)  评论(0编辑  收藏  举报