MFC创建自定义消息

创建自定义消息程序步骤:
1:用ClassWard创建一个新project命名为:MessageTest
2:此project选单文档,取消Active X支持,取消打印支持,其它默认。finish.
3:在菜单中添加一个菜单测试其子菜单为"test",并映射其执行方法:OnTest
4: 制造消息发送者:在资源中新增一个对话框,并用classward为其创建类名为
   TestDialog.然后在此对话框中加入一个Button,并用classward为其映射执行函数
   OnButton1()
5TestDialog.h文件中加入一行#define WM_MY_MESSAGE (WM_USER+100)
   用来定义自己的消息
6:在TestDialog.cpp文件中加入一行:#include "MainFrm.h"
7:为对话框的Button按钮加入发送消息代码如下:
void TestDialog::OnButton1() 
{
// TODO: Add your control notification handler code here
//获取当前框架指针
CMainFrame *pMainFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;
//获取当前view指针
CView *pView=pMainFrame->GetActiveView();
if(pView!=NULL)
{
pView->PostMessage(WM_MY_MESSAGE,0,0); // SendMessage()/

}

以上是对于消息的发送者工作己完成
8:以下是对于消息接收者
MessageTestView.h中也要定义:#define WM_MY_MESSAGE (WM_USER+100)
9:MessageTestView.h中定义消息映射函数如下:
protected:
//{{AFX_MSG(CMessageTestView)
afx_msg void OnTest();
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);   //此处为自定义消息映射函数
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
10:MessageTestView.cpp文件中,声明消息响应函数如下:
BEGIN_MESSAGE_MAP(CMessageTestView, CView)
//{{AFX_MSG_MAP(CMessageTestView)
ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage)  //自定义消息响应函数
ON_COMMAND(ID_TEST, OnTest)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
11:MessageTestView.cpp文件中实现消息响应函数如下:
LRESULT CMessageTestView::OnMyMessage(WPARAM wParam,LPARAM lParam)
{
MessageBox("OnMyMessage!Receiver");
return 0;
}
12:将消息发送者与消息响应者联系起来。即:将对话框与菜单联系起来。
实现CMessageTestViewOnTest方法如下:
void CMessageTestView::OnTest() 
{
// TODO: Add your command handler code here
TestDialog dlg;
dlg.DoModal(); 
}

至此自定义消息完成,此为DIALOG 类向VIEW类发消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值