我有一个自己的H和V滚动窗口.我正在处理这样的事件:
case WM_VSCROLL:
SetScrollPos(hWnd, SB_VERT, (int)HIWORD(wParam), TRUE);
break;
Run Code Online (Sandbox Code Playgroud)
所有我想要的是滚动条的位置,一旦我释放我的鼠标,但它正在做的只是回到顶部之后.我究竟做错了什么?
谢谢
And*_*and 10
的wParam所述的参数WM_VSCROLL的消息要么是SB_TOP,SB_BOTTOM,SB_PAGEUP,SB_PAGEDOWN,SB_LINEUP,SB_LINEDOWN,SB_THUMBPOSITION,或SB_THUMBTRACK,其中,所述名称应该解释自己.
SB_TOP并且SB_BOTTOM表示滚动窗口分别位于顶部或底部.右键单击垂直滚动条并选择"顶部"和"底部"可以发送这些消息.(例如,在Windows记事本,Win XP +中查找.)
SB_PAGEUP并且SB_PAGEDOWN表示页面(屏幕)向上或向下.如果您单击拇指旁边的滚动条或向上或向下箭头上的somwhere,或者使用滚动条的右键单击菜单,则会发送这些内容.
SB_LINEUP并SB_LINEDOWN在用户单击滚动条上的向上和向下按钮时发送,或选择相应的右键单击菜单命令.
SB_THUMBTRACK 当用户通过拖动滚动条的拇指滚动时,会连续发送.
SB_THUMBPOSITION 用户释放拇指时发送.
有关更多信息,请参阅MSDN文章WM_VSCROLL.
因此,当您收到WM_VSCROLL消息时,首先需要自己滚动.例如,如果您正在编写文本编辑器,则需要重绘文本,但窗口顶部有不同的行.然后,您需要将滚动条更新到其新位置,最好是通过SetScrollInfo,但您也可以使用旧的SetScrollPos函数.
| 归档时间: |
|
| 查看次数: |
5550 次 |
| 最近记录: |