WM_XBUTTONDOWN return 值与 ATL/MSDN 记录值之间的差异?
WM_XBUTTONDOWN return value difference between ATL/MSDN documented value?
从 https://msdn.microsoft.com/en-us/library/windows/desktop/ms646245(v=vs.85).aspx,我提取:
If an application processes this message, it should return TRUE. For
more information about processing the return value, see the Remarks
section.
在重要的情况下,WM_XBUTTONUP
和 WM_XBUTTONDBLCLK
也是如此。
我希望 MSG_WM_XBUTTONDOWN
能够做到这一点。但是,在 Chromium (https://src.chromium.org/svn/trunk/src/third_party/wtl/include/atlcrack.h) 的 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_XBUTTONDOWN
和 MSG_WM_XBUTTONDBLCLK
的相似作品。
在此片段中,lResult = 0
行让我感到困惑。不应该是 lResult = TRUE
(根据 MSDN)吗?
这是 WTL 中的一个错误,已 fixed。
从 https://msdn.microsoft.com/en-us/library/windows/desktop/ms646245(v=vs.85).aspx,我提取:
If an application processes this message, it should return TRUE. For more information about processing the return value, see the Remarks section.
在重要的情况下,WM_XBUTTONUP
和 WM_XBUTTONDBLCLK
也是如此。
我希望 MSG_WM_XBUTTONDOWN
能够做到这一点。但是,在 Chromium (https://src.chromium.org/svn/trunk/src/third_party/wtl/include/atlcrack.h) 的 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_XBUTTONDOWN
和 MSG_WM_XBUTTONDBLCLK
的相似作品。
在此片段中,lResult = 0
行让我感到困惑。不应该是 lResult = TRUE
(根据 MSDN)吗?
这是 WTL 中的一个错误,已 fixed。