第014讲:滚动条3
知识点回顾:1. 应该使用 SetScrollInfo 和 GetScrollInfo 函数来实现滚动条
你完全可以把 SetScrollInfo 函数当成是 SetScrollRange 函数和 SetScrollPos 函数的合体;GetScrollInfo 函数当成是 GetScrollRange 函数和 GetScrollPos 函数的合体。但新的函数至少有个好处,就是 SetScrollInfo 函数和 GetScrollInfo 函数是使用一个 SCROLLINFO 结构来存放参数的,这样做更有利于今后的兼容。
2. SCROLLINFO 结构
当你熟悉 Windows 应用程序开发后,你会发现还有其他很多结构也是类似这样,第一个成员用于存放该结构的大小,这样,以后的 Windows 版本可以扩充结构而同时保持与以前的应用程序兼容。
结构的第二个成员 fMask 举个例子给大家讲下(请参考 SCROLLINFO 结构):比如我设置 fMask 为标志 SIF_RANGE,那么我接着调用 SetScrollInfo 函数就会将 nMin 和 nMax 的值设置到窗口的滚动条里去。相反,如果我接着调用的是 GetScrollInfo 函数,那么函数会获取窗口的滚动条的范围,并填充到 nMin 和 nMax 这两个参数中。
3. ScrollWindow 函数的要点
ScrollWindow 函数有什么特性呢?它的主要功能是将内容滚动起来。你没听错,它会去滚动客户区里边的内容。滚动的距离就是 Xamount 和 Yamount 参数设定的值。
不过一定要注意的是,它只能滚动已显示的内容,然后将未覆盖的地方(也就是滚动后腾出的那一部分空间)变成失效区域,这样的话,当窗口过程接收到 WM_PAINT 消息的时候,就可以只对失效的区域进行重绘了。
另外有个高级版:ScrollWindowEx
WinSDK {:5_108:} {:5_92:} {:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:} {:5_105:} {:5_90:}
页:
[1]