MESSAGE_HANDLER与ON_MESSAGE区别

1个回答

  • ON_MESSAGE是MFC中定义的用于将自定义消息和消息处理函数关联起来的宏.如:

    #define WM_MYMESSAGE (WM_USER + 1)

    BEGIN_MESSAGE_MAP( CMyWnd, CMyParentWndClass )

    ON_MESSAGE( WM_MYMESSAGE, OnMyMessage )

    END_MESSAGE_MAP( )

    MESSAGE_HANDLER是ATL中定义的用于将消息和消息处理函数关联起来的宏.如:

    BEGIN_MSG_MAP(CMyClass)

    MESSAGE_HANDLER(WM_PAINT, OnPaint)

    END_MSG_MAP()

    两者异同:

    1)两者分属于不同的开发框架,没有关联关系,不能同时使用.MESSAGE_HANDLER属于ATL,ON_MESSAGE属于MFC.

    2)两者作用类似,但ON_MESSAGE主要用于自定义消息.