Scroll Bar(滚动条)

Windows(操作系统)对滚动条的处理:
处理所有滚动条鼠标事件;
当用户在滚动条内单击鼠标时,提供一种“反相视频”闪烁;
当用户在滚动条内拖动滚动框时,移动滚动框;
为包含滚动条窗口的窗口过程发送滚动条消息。

程序员对于滚动条应该完成的工作:
初始化滚动条的范围和位置;
处理窗口过程的滚动条消息;
更新滚动条内滚动框的位置;
更改客户区的内容以响应对滚动条的更改。

滚动条消息(WM_VSCROLL 和 WM_HSCROLL):
在用鼠标单击滚动条或者拖动滚动框时,Windows 给窗口过程发送 WM_VSCROLL(供上下移动)和 WM_HSCROLL(供左右移动)消息。
在滚动条上的每个鼠标动作都至少产生两个消息,一个在按下鼠标键时产生,一个在释放键时产生。

wParam 和 lParam 消息参数:
与所有的消息一样,WM_VSCROLL 和 WM_HSCROLL 也带有 wParam 和 lParam 消息参数。对于来自作为窗口的一部分而创建的滚动条消息,可以忽略 lParam;它只用于作为子窗口而创建的滚动条(通常在对话框内)。

wParam 消息参数:
wParam 消息参数被分为一个低位字和一个高位字。低位字是一个数值,它指出了鼠标对滚动条进行的操作。这个数值被看作一个“通知码”。
通知码的值由以SB(代表"scroll bar"(滚动条))开头的标识符定义。

通知码:
SB_LINEUP               // 按下垂直滚动条的顶部按钮
SB_LINEDOWN         // 按下垂直滚动条的底部按钮
SB_LINELEFT            // 按下水平滚动条的左部按钮
SB_LINERIGHT          // 按下水平滚动条的右部按钮
SB_ENDSCROLL        // 释放滚动条上的鼠标光标
SB_PAGEUP              // 按下垂直滚动条上滚动框与顶部按钮之间的空白位置
SB_PAGEDOWN        // 按下垂直滚动条上滚动框与底部按钮之间的空白位置
SB_PAGELEFT           // 按下水平滚动条上滚动框与左部按钮之间的空白位置
SB_PAGERIGHT         // 按下水平滚动条上滚动框与右部按钮之间的空白位置
SB_THUMBTRACK      // 按下滚动条上的滚动框
SB_THUMBPOSITION  // 释放滚动框上的鼠标按钮

其他通知码(对于作为应用程序窗口一部分而创建的滚动条来说,以下这些通知码永远不会接收到):
SB_TOP             // 滚动框被移到了最顶部
SB_BOTTOM      // 滚动框被移到了最底部
SB_LEFT            // 滚动框被移到了最左部
SB_RIGHT         // 滚动框被移动了最右部

SB_THUMBTRACK 和 SB_THUMBPOSITION:
当 wParam 的低位字是 SB_THUMBTRACK 时,wParam的高位字是用户在拖动滚动框时的当前位置。该位置位于滚动条范围的最小值和最大值之间。
当 wParam 的低位字是 SB_THUMBPOSITION 时,wParam的高位字是用户释放鼠标键后滚动框的最终位置。
对于其他的滚动条操作,wParam 的高位字应该被忽略。

posted on 2011-12-17 21:39 梦五 阅读(456) 评论(0)  编辑 收藏 引用 所属分类: Windows相关


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜