📄 untitled-43.txt
字号:
第2章在窗口中绘图73
afx.msgv。id00Scroll(UINTnCode,UINTnPos,CScrollBar。 pscrollBar)
"Code指定产生消息的事件的类型;如果滚动条滑块正在被拖动或拖动后刚刚被释放,
则nP。s保存了滚动条滑块的最新位置信息;而且对于通过向窗口添加 WS.HSCROLL或
WS.VSCROLL样式位而创建的滚动条,pscrollBar为NULL。
应用程序在onVScroll的"Code参数中可能接收到的事件通知有7种,如表2一回回所示。
表2.11 onVScrol函数的"Code参数接收的事件
事件代码发送时间
SB_LINEUP滚动条顶部的箭头被单击
SB.UNEDOWN滚动条底部的箭头被单击
SB_PAGEUP顶部箭头和滚动条沿块间的滚动条体被单击
SB_PAGEDOWN底部箭头和滚动条滑块间的滚动条体被单击
SB.ENDSCROLL鼠标键被释放,并且再没有SB_LINEUP、SB.LINEDOWN、SB.
PAGEUP或SB.PAGEDOWN通知发来
SB.THUMBTRACK滚动条沿块被拖动
SB.THUMBPOSITION拖动后滚动条沿块被释放
水平滚动条与垂直滚动条发送的是一样的通知,但是通知的含义却稍有不同。对水平滚
动条来说,SB.LINEUP表示左箭头被单击,SB.LINEDOWN表示右箭头被单击,SB—PAGEUP是
指左箭头与滚动条滑块间的滚动条体被单击,而SB_PAGEDOWN是指右箭头与滚动条滑块间
的滚动条体被单击。如果您愿意,也可以用SB—LINELEry、SB—LINERIGHT、SB一PAGELEFT和
SB.PAGERIGHT替代SB.LINEUP、SB_LINEDOWN、SB.PAGEUP和SB_PAGEDOWN。本章后
面将专门讲述垂直滚动条,但是请注意所讲的也同样适用于水平滚动条。
如果用户单击滚动条或滚动条箭头,并始终不松开鼠标键,则一系列SB—LINEUP、SB.
LINEDOWN、SB_PAGEUP或SB_PAGEDOWN通知就会很快地接啤而至,与接键被按下时生
成自动重复键人的键代码流的情况类似。SB.ENDSCROLL终止UP或DOWN通知,并指示
已释放鼠标键。即使只是单击一次滚动条体或箭头也会生成一个UP或DOWN通知,后随
SB.ENDSCROLL通知。同样,在滚动条滑块被拖动时,窗口要应付不断前来通知拇指新位
置的SB.THUMBTRACK通知;而在鼠标被释放时,接收至0 SB.THUMBPOSITION通知。当
SB.THUMBTRACK或SB.THUMBPOSITION通知到来的时候,消息的uP0s参数保留有最新的
滚动条滑块位置。对于其他事件代码,。PoS的值没有定义。
程序如何响应滚动条事件的消息取决于编程人员。大部分使用滚动条的程序忽略SB一
ENDSCROLL消息,而响应SB.LINEUP、SB.LINEDOWN、SB.PAGEUP和SB.PAGEDOWN消
息。通常对SB_LINEUP和SB_LINEDOWN消息的响应是把窗口内容向上或向下滚动一行,
并调用SetscrollPos或Setscrolllnfo设定滚动条的新位置和更新滚动条滑块位置。“行”可以
具有您希望的任何物理含义,它或指一个像素,或表示一行文本的高度。同样地,常见的对
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -