更新时间:2022-07-02 06:21
WM_VSCROLL 定义在头文件Winuser.h中。定义为:#define WM_VSCROLL 0x0115.
WM_VSCROLL 定义在头文件Winuser.h中。定义为:#define WM_VSCROLL 0x0115.
当窗口的标准垂直滚动条中有滚动的事件发生时,在我们的窗口应用程序的消息队列中将产生一条WM_VSCROLL消息。
WM_VSCROLL
WPARAM wParam;
LPARAM lParam;
wParam
HIWORD指定LOWORD做为SB_THUMBPOSITION或SB_THUMBTRACK滚动框的当前位置,否则,这个词不使用。
LOWORD做为指定一个滚动条值,指出用户的滚动要求。这个参数可以是下列值之一。
SB_PAGEDOWN 向下滚动一页
SB_LINEDOWN 向下滚动一行
SB_PAGEUP 向上滚动一页
SB_LINEUP 向上滚动一行
SB_TOP 滚动到顶端
SB_BOTTOM 滚动到底部
SB_THUMBPOSITION 用户有拖动滚动框 (滑块),并释放鼠标按钮。HIWORD 指示在拖动操作结束时滚动框的位置。
SB_THUMBTRACK 用户正在拖动滚动框。直到用户释放鼠标按钮,反复发送此邮件。HIWORD 指示滚动框已被拖动到的位置。
lParam
如果lParam参数等于0,就说明它是窗口滚动条;如果等于滚动条窗口句柄,就说明它是滚动条控件。
afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );
nSBCode:显示用户的滚动请求,例如:
nPos:如果滚动条状态是SB_THUMBPOSITION 或者 SB_THUMBTRACK,指定当前的滚动框位置;否则不使用。根据初始化滚动条的范围,nPos可能是负方向的,如有必要转化成int.
pScrollBar:如果滚动信息来源于一个滚动条控制,包含一个指向控制的指针。如果用户点击了windows的滚动条按钮,这个参数为NULL。保留备用。
如果应用程序处理该消息,它应该返回零。
SB_THUMBTRACK 请求代码通常使用的应用程序提供的反馈,因为用户拖动滚动框。
如果应用程序将滚动窗口的内容,它也必须复位使用 SetScrollPos 函数的滚动框的位置。
请注意 WM_VSCROLL 消息进行滚动框的位置数据的只有 16 位。因此,应用程序仅仅依靠 WM_VSCROLL (和 WM_HSCROLL) 为滚动位置数据的实际最大位置值为 65,535
但是,由于 SetScrollInfo、 SetScrollPos、 SetScrollRange、 GetScrollInfo、 GetScrollPos 和 GetScrollRange 函数支持 32 位滚动栏位置数据,是避开 16 位屏障的 WM_HSCROLL 和 WM_VSCROLL 的消息的方法。技术的说明,请参阅 GetScrollInfo。