0

假设您正在创建一个CWindowImpl带有一个或多个CContainedWindows 的 ATL 类。然后假设您想要链接一些CContainedWindows ALT_MSG_MAP,以便几个窗口在它们的窗口过程中共享一些基本功能。但是在这些共享过程中,你会想知道哪个窗口正在接收给定的消息。ATL 不在其消息映射处理函数中传递 HWND。那么还有另一种方法来确定您正在处理的 HWND 吗?

4

1 回答 1

0

实际上,我还不确定,但我认为这可能有效:

#define MESSAGE_HANDLER_EX(msg, func) \
    if(uMsg == msg) \
    { \
        bHandled = TRUE; \
        lResult = func(hWnd, uMsg, wParam, lParam, bHandled); \
        if(bHandled) \
            return TRUE; \
    }

然后处理函数应该有一个签名,如:LRESULT HandlerFunc(HWND, UINT, WPARAM, LPARAM, BOOL&).

于 2020-10-03T17:24:33.310 回答