天天看點

三大MSG宏

//afxwin.h 

struct AFX_MSGMAP

{

    const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)();

    const AFX_MSGMAP_ENTRY* lpEntries;

};

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_PTR nSig;       // signature type (action) or pointer to message #

    AFX_PMSG pfn;    // routine to call (or special value)

};

typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);

//===========

#define DECLARE_MESSAGE_MAP() \

protected: \

    static const AFX_MSGMAP* PASCAL GetThisMessageMap(); \

    virtual const AFX_MSGMAP* GetMessageMap() const; \