VC中自定义消息实现

原创 2007年09月19日 15:29:00
 
1.方法一
Step 1:使用WM_TASKBARCREATED来确定一个没有被windows本身抢占
的消息值,在想添加消息文件中添加代码:
const UINT WM_USERDEFMSG = ::RegisterWindowMessage(_T("UserDefMsg"));
Step 2:定义消息的处理过程:在处理消息的类(如Dlg类或者MainFrame等)
添加消息处理函数声明:
afx_msg LRESULT OnUserDefMsg(WPARAM wParam,LPARAM lParam);
       在实现文件中添加消息处理实现,这里给出一个实现例子:
LRESULT ××××::OnUserDefMsg(WPARAM wParam,LPARAM lParam)
//××××代表处理该消息的类名
{
       MessageBox("响应了自定义的消息,^_^","自定义消息响应",MB_ICONQUESTION | MB_OK);
       return 0;
}
       Step 3:添加消息处理宏,在处理该消息的类的消息宏中添加自定义消息的宏,即在BEGIN_MESSAGE_MAP代码块中添加代码:
ON_REGISTERED_MESSAGE(WM_USERDEFMSG, OnUserDefMsg)
       自定义消息完毕。
2)  方法二
Step 1:定义消息值,这里不通过RegisterWindowMessage获取,而是自定义方式实现,
在想添加消息文件中添加代码:
#define WM_USERDEFMSG (WM_USER + 101)
       Microsoft推荐自定义消息值至少为WM_USER + 100
       Step 2:同方法一中实现;
       Step 3:同方法一中,但是宏名称改为ON_MESSAGE。
u       发送消息
按照上面方式我们已经自定义了消息,并为该消息实现了简单的处理过程,这里就通过
发送消息获得自定义消息的响应。在要触发自定义消息地方添加代码:
::SendMessage(GetSafeHwnd(),WM_USERDEFMSG,0L,0L);
       这样你就触发了该自定义消息,并将得到提示对话框显示。
下面是第二种增加自定义消息方法的步骤:

第一步:定义消息。开发Windows95应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。

第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。

LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// TODO: 处理用户自定义消息
...
return 0;
}
第三步:在类头文件的AFX_MSG块中说明消息处理函数:

class CMainFrame:public CMDIFrameWnd
{
...
// 一般消息映射函数
protected:
// {{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}
第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。

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()

如果用户需要一个整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

vc自定义消息的发送与接收的方法实现

vc自定义消息的发送与接收的方法实现 http://blog.csdn.net/elecsoft/article/details/5735240 以下用一个自创的对话框类(MyMess...

vc 自定义消息实现

本案例是根据两个dialog 相互通信总结而来,在两个dialog都设置好后,分为四步实现消息传递: 项目名称为:MFCmiltiWin 主dialog:CMFCmiltiWinDlg 从dia...

vc自定义消息的发送与接收的方法实现

vc自定义消息的发送与接收的方法实现 以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的消息传递的方法一...

VC++自定义消息的发送与接收的方法实现

消息传递的方法一:使用ON_MESSAGE 使用ON_MESSAGE响应消息,必须配合定义消息#define WM_MY_MESSAGE (WM_USER+100) 对于发送消息者-MyMessa...

vc++ 自定义消息和WM_NOTIFY消息实现

一、在vc++ 里面通过SendMessage可以向窗口发送自定义消息,过程大致如下: 首先定义自定义消息ID #define MY_MESSAGEID WM_USER+300 然后在消息映射...

VC中自定义消息的传递

  • 3天前 10:51
  • 22.67MB
  • 下载

VC_自定义消息说明

  • 2012-05-07 22:52
  • 18KB
  • 下载

vc中怎么使用SendMessage自定义消息函数

最近在用VC2008做开发,后来由于要用到消息的发送,而且需要自定义消息,在网上查找了很多例子,根据他们所说的,虽然大致都差不多,但是基本上没有一个能完全做出来的。要知道VC编程有一个小地方出错,都可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)