WM_XBUTTONDOWN返回ATL/MSDN文档值之间的差异

WM_XBUTTONDOWN return value difference between ATL/MSDN documented value?

本文关键字:之间 文档 MSDN XBUTTONDOWN 返回 ATL WM      更新时间:2023-10-16

从https://msdn.microsoft.com/en-us/library/windows/desktop/ms646245(v=vs.85).aspx中提取:

如果应用程序处理此消息,它应该返回TRUE。为有关处理返回值的更多信息,请参见备注部分。

如果有关系,WM_XBUTTONUPWM_XBUTTONDBLCLK也是如此。

我期望我会找到MSG_WM_XBUTTONDOWN做这一点。然而,在atlcrack.h从铬(https://src.chromium.org/svn/trunk/src/third_party/wtl/include/atlcrack.h),我发现以下内容:

// void OnXButtonDown(int fwButton, int dwKeys, CPoint ptPos)
#define MSG_WM_XBUTTONDOWN(func) 
    if (uMsg == WM_XBUTTONDOWN) 
    { 
        SetMsgHandled(TRUE); 
        func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); 
        lResult = 0; 
        if(IsMsgHandled()) 
            return TRUE; 
    }

MSG_WM_XBUTTONDOWNMSG_WM_XBUTTONDBLCLK中可以找到类似的片段。

在这个代码片段中,lResult = 0行让我感到困惑。它不应该是lResult = TRUE(根据MSDN)吗?

这是WTL中的一个bug,现已修复。