使用步骤:
第一步: 在头文件stdafx.h中增加一个自定义消息宏
1 #define WM_USER_THREADEND WM_USER + 1
说明:很多MFC的消息是在WM_USER内的,所以这里用比WM_USER大的消息
第二步:在增加新消息的窗口或对话框类的头文件中增加一个回调函数声明,注意要声明为public
1 afx_msg LRESULT OnUserThreadend(WPARAM wParam, LPARAM lParam);
第三步:在窗口或对话框的cpp文件的BEGIN_MESSAGE_MAP,END_MESSAGE_MAP 中增加一行(消息映射)
1 ON_MESSAGE(WM_USER_THREADEND, OnUserThreadend)
第四步:在窗口或对话框的cpp文件中增加回调函数的实现
1 LRESULT ThreadDialog::OnUserThreadend(WPARAM wParam, LPARAM lParam)2 {3 TRACE("WM_USER_THREADEND message /n");4 return 0;5 }
第五步:自定义消息的触发
1 ::PostMessage(GetSafeHwnd(), WM_USER_THREADEND, 0, 0);
其中GetSafeHwnd()得到了一个当前窗口的句柄,此消息将发给当前窗口,如果想发送消息给其它窗口只需改变这个句柄,前提是目的窗口也实现了此消息的处理函数。
参考文档:
1.MFC自定义消息: