📄 如何处理自定义消息 .htm
字号:
<html><body background="di2001.jpg"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>如何处理自定义消息</title><meta name="GENERATOR" content="Microsoft FrontPage 3.0"></head><body><p><strong>如何处理自定义消息 </strong></p><p><em>张圣华 </em></p><blockquote> <p> ClassWizard不允许增加用户自定义消息,所以你必须手工输入。输入后,ClassWizard就可以象处理其它消息一样处理你自定义的消息了。</p> <p> 下面是增加自定义消息的步骤:</p> <p> 第一步:定义消息。开发Windows95应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。</p> <p> 第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。</p> <blockquote> <pre>LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam){ // TODO: 处理用户自定义消息 ... return 0;}</pre> </blockquote> <p> 第三步:在类头文件的AFX_MSG块中说明消息处理函数:</p> <blockquote> <pre>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()}</pre> </blockquote> <p> 第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。</p> <blockquote> <pre>BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_TIMER() ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) //}}AFX_MSG_MAPEND_MESSAGE_MAP()</pre> </blockquote> <p> 如果用户需要一个整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。</p></blockquote></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -