VC 自定义消息 postmessage用法
1. 在 resource.h文件添加如下代码 定一个自己的消息
#defineWM_MY_MESSAGE WM_USER + 100// 1.自定义消息的值
2.在...view.h的文件添加如下:
//{{AFX_MSG(CPostmessageView)
afx_msg void Ontydspostmessage();
afx_msg voidOnMyMessage();// 2.自定义消息响应函数定义
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
3.在...view.cpp文件添加如下代码
BEGIN_MESSAGE_MAP(CPostmessageView, CView)
//{{AFX_MSG_MAP(CPostmessageView)
ON_COMMAND(ID_tyds_postmessage, Ontydspostmessage)
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) // 3.消息映射,即将消息响应函数与相应的消息关联起来
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
void CPostmessageView::Ontydspostmessage()
{
MessageBox("begin post message!");
//PostMessage(WM_MY_MESSAGE); //这里PostMessage SendMessage两则区别是
SendMessage(WM_MY_MESS AGE);
//PostMessage只负责将消息投到消息队列中,不确定何时及是否处理,然后返回调用PostMessage处继续执行
//SendMessage要等到受到消息处理的返回码(DWord类型)后才返回调用PostMessage处继续执行
}
消息相应函数
void CPostmessageView::OnMyMessage() // 4.自定义消息响应函数的实现
{
MessageBox("post msg finished!");
// return 0;
}