自定义消息响应流程
1、增加自定义消息宏
#define WM_MYMESSAGR WM_USER + 101
(一般定义在stdafx.h文件中)
2、添加消息响应函数声明
1、在对话框类的头文件(...dlg.h)增加一个回调函数声明:
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
2.窗口或对话框的cpp文件的BEGIN_MESSAGE_MAP,END_MESSAGE_MAP 中
增加一行ON_MESSAGE(WM_MYMESSAGR , OnUserThreadend)
3、在窗口或对话框的cpp文件中增加回调函数的实现,如:
//wParam 和lParam分别对应PostMessage的第三和第四个参数
LRESULT ThreadDialog::OnUserThreadend(WPARAM wParam, LPARAM lParam)
{
TRACE("WM_MYMESSAGR message /n");
return 0;
}
4、自定义消息的触发
::PostMessage(GetSafeHwnd(), WM_MYMESSAGR, 0, 0); (加入消息队列,不会阻塞)
或::SendMessage(GetSafeHwnd(), WM_MYMESSAGR, 0, 0);(立即处理消息,会阻塞)
(GetSafeHwnd()得到了一个当前窗口的句柄)
如果想发送消息给其它窗口只需改变这个句柄,
前提是目的窗口也实现了此消息的处理函数
1、增加自定义消息宏
#define WM_MYMESSAGR WM_USER + 101
(一般定义在stdafx.h文件中)
2、添加消息响应函数声明
1、在对话框类的头文件(...dlg.h)增加一个回调函数声明:
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
2.窗口或对话框的cpp文件的BEGIN_MESSAGE_MAP,END_MESSAGE_MAP 中
增加一行ON_MESSAGE(WM_MYMESSAGR , OnUserThreadend)
3、在窗口或对话框的cpp文件中增加回调函数的实现,如:
//wParam 和lParam分别对应PostMessage的第三和第四个参数
LRESULT ThreadDialog::OnUserThreadend(WPARAM wParam, LPARAM lParam)
{
TRACE("WM_MYMESSAGR message /n");
return 0;
}
4、自定义消息的触发
::PostMessage(GetSafeHwnd(), WM_MYMESSAGR, 0, 0); (加入消息队列,不会阻塞)
或::SendMessage(GetSafeHwnd(), WM_MYMESSAGR, 0, 0);(立即处理消息,会阻塞)
(GetSafeHwnd()得到了一个当前窗口的句柄)
如果想发送消息给其它窗口只需改变这个句柄,
前提是目的窗口也实现了此消息的处理函数