MFC中的afx_msg和BEGIN_MESSAGE_MAP
来源:互联网 发布:二手手机估值软件 编辑:程序博客网 时间:2024/05/16 10:27
BEGIN_MESSAGE_MAP 下面是定义:什么事件发生时该执行哪个子程序。
是MFC定义的宏,表示开始一个消息的映射描述。
BEGIN_MESSAGE_MAP( theClass, baseClass )
Parameters
theClass
Specifies the name of the class whose message map this is.
baseClass
Specifies the name of the base class of theClass
Remarks
Use the BEGIN_MESSAGE_MAP macro to begin the definition of your message map.
In the implementation (.CPP) file that defines the member functions for your class, start the message map with the BEGIN_MESSAGE_MAP macro, then add macro entries for each of your message-handler functions, and complete the message map with the END_MESSAGE_MAP macro.
For more information on message maps and the BEGIN_MESSAGE_MAP macro, seeAdding a Dialog Box in Visual C++ Tutorials.
Example
// example for BEGIN_MESSAGE_MAP
BEGIN_MESSAGE_MAP( CMyWindow, CFrameWnd )
//{{AFX_MSG_MAP( CMyWindow )
ON_WM_PAINT()
ON_COMMAND( IDM_ABOUT, OnAbout )
//}}AFX_MSG_MAP
END_MESSAGE_MAP( )
在相应的.cpp中写入这样的消息映射之前,要在相应的类中用 afx_msg 声明某个函数是消息映射函数
如在类class CExample1Dlg : public CDialog的头文件中添加:(这块没理解,需要声明吗,当然声明也没错,但是直接类里定义不就完了吗,反正消息处理函数不是要在类里定义吗) (理解了,因为一个类的定义一般是在其头文件中,源程序文件.cpp里一般是类成员函数的定义等)
(还有一个,我以为消息处理函数只能在窗口类CFramWnd或其派生类里声明,看来CDialog也行,还是CDialog是窗口类的派生类,晕,再查查?)
afx_msg LRESULT OnServerMessage(WPARAM wParam,LPARAM lParam);
在.cpp文件中添加:ON_MESSAGE(SER_MESSAGE,OnServerMessage)
然后就在其.cpp文件中写好关于OnServerMessage()的定义函数.
但是在本例中SER_MESSAGE没有事先定义一个消息映射
要在类class CExample1Dlg : public CDialog的头文件中定义一个消息映射号如
#define SER_MESSAGE WM_USER+100
才可以实现消息的映射和响应.(这块没有接触过)
- MFC中的afx_msg和BEGIN_MESSAGE_MAP
- MFC中的afx_msg和BEGIN_MESSAGE_MAP
- MFC之BEGIN_MESSAGE_MAP和END_MESSAGE_MAP
- MFC中的#ifndef afx_msg #define afx_msg // intentional placeholder #endif
- MFC BEGIN_MESSAGE_MAP()
- MFC BEGIN_MESSAGE_MAP()
- MFC BEGIN_MESSAGE_MAP()
- MFC BEGIN_MESSAGE_MAP()
- MFC BEGIN_MESSAGE_MAP()
- C++ MFC中的afx_msg and on_command
- MFC之MFC BEGIN_MESSAGE_MAP()
- MFC中afx_msg
- MFC中afx_msg
- MFC中afx_msg
- (zz)MFC消息映射BEGIN_MESSAGE_MAP()
- 手写MFC----第四讲 BEGIN_MESSAGE_MAP
- MFC消息映射BEGIN_MESSAGE_MAP详解
- MFC消息映射BEGIN_MESSAGE_MAP详解
- 使用map文件找bug.
- jsp request方法大全
- Fedora中的rpm软件包命令用法摘记
- CISC, RISC 区别
- ubuntu中pdf中文乱码解决方法
- MFC中的afx_msg和BEGIN_MESSAGE_MAP
- 链接服务器相关
- adb devices获得的设备标识
- 09036a33 JAVA EYE
- 基于CC2430/31的Zigbee实践(8)--Texas Instruments/ZStack-1.4.3/Documents/CC2430文档阅读记录
- 谁有C#。net工资管理系统
- 类
- wuliao
- 如何开展灰盒测试[1]:灰盒测试优缺点分析 收藏