高手请进!API 难题(探索消息映射机制)!
Ideal 2000-09-09 10:56:00 我在用 API 进行编程时,遇到一个问题:
typedef LRESULT (*PFN)(HWND, UINT, WORD, LONG); // 函数宏定义
typedef struct _MSD
{
UINT uMessage; // 从 WINDOWS 传过来的消息
PFN pFunc; // 处理此消息的函数
}MSD;
typedef struct _MSDI
{
int cmsd; // 处理的消息总数
MSD* pMSD; // 用对应的消息调用对应的函数
int default; // WINDOWS 发过来的消息不在列表中时默认的处理方式
}MSDI;
现在,我想把这些结构包含进我要设计的窗口类中,对 WINDOWS 消息进行处理:
class CWndObject
{
CWndObject(...);
virtual ~CWndObject();
:
:
:
MSD* m_pMSD;
MSDI* m_pMSDI;
:
:
:
LRESULT Dispath(MSDI*, ...);
:
:
:
};
问题有3:
(1)上面的宏和结构,我应该定义在类体内还是类体外比较合适?
(2)怎样给成员变量 m_pMSD 和 m_pMSDI 分配空间,并对其进行赋值(初始化)?
(3)这些消息是用函数 Dispath() 来分发调用的。也就是,怎样保证它调用正确的函数?(此问题实质是问题2,但我必须强调!)
注:我是想利用设计此类来探索消息映射机制原理。