我知道这是一个非常古老的东西,但我正在为此绞尽脑汁。有谁知道为什么会这样?
比如说,当滚动条鼠标点击通知通过WM_NCHITTEST
-> WM_NCLBUTTONDOWN
-> WM_SYSCOMMAND
-> WM_HSCROLL
or传播时WM_VSCROLL
,这个链中的所有参数似乎都遵循文档,除了SC_HSCROLL
和SC_VSCROLL
for WM_SYSCOMMAND
。所以如果我这样做:
//From within WndProc
if(message == WM_SYSCOMMAND)
{
UINT uiCmd = wParam & 0xFFF0;
if(uiCmd == SC_HSCROLL)
{
TRACE(L"Horiz scroll\n");
}
else if(uiCmd == SC_VSCROLL)
{
TRACE(L"Vertical scroll\n");
}
}
我似乎收到水平的垂直通知,反之亦然。
这是来自 Spy++ 的证明。如果我单击此向下箭头:
这些是窗口收到的通知:
全部正确,除了SC_HSCROLL
. 怎么回事?