MFC 消息映射 与 命令绕行

2020-01-23 - C/C++

MFC消息的定义
1、必须在类中声明该类拥有消息映射表格

DECLARE_MESSAGE_MAP();

转到该宏的定义

#ifdef _AFXDLL
#define DECLARE_MESSAGE_MAP() \
private: \
static const AFX_MSGMAP_ENTRY _messageEntries[]; \
protected: \
static AFX_DATA const AFX_MSGMAP messageMap; \
static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \
virtual const AFX_MSGMAP* GetMessageMap() const; \
#else
#define DECLARE_MESSAGE_MAP() \
private: \
static const AFX_MSGMAP_ENTRY _messageEntries[]; \
protected: \
static AFX_DATA const AFX_MSGMAP messageMap; \
virtual const AFX_MSGMAP* GetMessageMap() const; \
#endif
struct AFX_MSGMAP_ENTRY
{
UINT nMessage;   // windows message
UINT nCode;      // control code or WM_NOTIFY code
UINT nID;        // control ID (or 0 for windows messages)
UINT nLastID;    // used for entries specifying a range of control id's
UINT nSig;       // signature type (action) or pointer to message #
AFX_PMSG pfn;    // routine to call (or special value)
};

struct AFX_MSGMAP
{
#ifdef _AFXDLL
const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)();
#else
const AFX_MSGMAP* pBaseMap;
#endif
const AFX_MSGMAP_ENTRY* lpEntries;
};

- END -

7
0

WinMain 函数的定义

WinMain 函数的定义

在应用程序中有一个重要的函数WinMain,这个函数是应用程序的基础。当Windows操作系统启动一个程序时,它调用的 ...

MD5算法的C++实现

MD5算法的C++实现

MD5算法的C++实现IntroductionMD5算法是一种消息摘要算法(MessageDigestAlgorithm),此算法以任意长度的信息(message)作为输入 ...

DLL中调用约定和名称修饰

DLL中调用约定和名称修饰

调用约定(CallingConvention[kən’venʃ(ə)n])是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规 ...

窗口风格

窗口风格

WS_BORDER有边框窗口WS_CAPTION必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用。指示窗口包含标题要部分。WS_ ...

基本数据类型

基本数据类型

数据类型名称占用字节数取值范围char(signedchar)字符型(有符号字符型)1-128~127unsignedchar无符号字符型10~255short(signe ...

ListCtrl使用详述及进程列表示例

ListCtrl使用详述及进程列表示例

ListCtrl使用详述及进程列表示例作者:阿珊境界近日同事问起ListCtrl的使用示例,我竟有一种无从下手的感觉。查 ...

NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE 宏定义

NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE 宏定义

在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“errorC2065:undeclaredidentifi ...

认识CLSID和GUID

认识CLSID和GUID

什么是CLSID呢,为了更好的理解,先来做几个有趣的试验。首先,任意新建一个文件夹,如新建一个名为gdi的文件 ...

inline 内联函数一般定义实现都在头文件中

inline 内联函数一般定义实现都在头文件中

如题内联函数一般是定位到函数的地址?又忘记哪里介绍过了内联函数应该放在头文件中定义,这一点不同于其他 ...

CoCreateGuid() 用法

CoCreateGuid() 用法

CreatesaGUID,aunique128-bitintegerusedforCLSIDsandinterfaceidentifiersHRESULTCoCreateGuid(__outGUID*pguid);pguid[out]:ApointertotherequestedGUID.Retur ...