为什么点击一次获取旋转控制值时会执行两次WM_VSCROLL消息?

问题描述 投票:0回答:1

我试图通过

WM_VSCROLL
消息获取旋转控制值,但是发生了一些不寻常的事情,代码在单击旋转控件一次时实现了两次。

case WM_VSCROLL:
{
    switch (GetDlgCtrlID((HWND)lParam)) {
    case JOB_SPIN:
    {
        UINT spin_pos = SendDlgItemMessage(hDlg, JOB_SPIN, UDM_GETPOS32, 0, 0);
        OutputDebugString(Mem->ToString(spin_pos).c_str()); // Mem->ToString, to convert a number to a string
    }

    }
    return TRUE;
}

当尝试检查每条消息的

WParam
值时,我发现存在差异:

我的代码有什么问题或者缺少什么?

c++ winapi
1个回答
0
投票

根据文档

  • 在第一条消息中,
    wParam=196612
    启用了
    SB_THUMBPOSITION
    标志。
  • 在第二条消息中,
    wParam=196616
    启用了
    SB_ENDSCROLL
    标志。
© www.soinside.com 2019 - 2024. All rights reserved.