定比例滚动框的大小,当fMask 中包含 SIF_PAGE 时有效
int nPos;
//滚动框的位置,当fMask 中包含SIF_POS 有效
int nTrackPos;
//滚动时滚动框的位置,当fMask 中包含SIF_TRACKPOS 时有效,该参数只能查询,不能设置,
最好不要用该参数来查询拖动时滚动框的位置
}SCROLLINFO;
typedef SCROLLINFO FAR *LPSCROLLINFO;
参数nMask 的意义与SCROLLINFO 结构中的fMask 相同,函数在获得有效值后返回
TRUE,否则返回FALSE。
6.SetScrollInfo()函数
该成员函数声明如下:
BOOL SetScrollInfo(LPSCROLLINFO lpScrollInfo,BOOL bRedraw = TRUE);
该函数用于设置滚动条的各种状态,如设定页尺寸从而实现比例滚动框。参数lpScrollInfo
指向一个SCROLLINFO 结构,参数bRedraw 表示是否需要重绘滚动条,如果为TRUE,则
重绘之。若cāo作成功,该函数返回TRUE,否则返回FALSE。
CWnd 类也提供了一些函数来查询和设置所属的标准滚动条。这些函数与CScrollBar 类
的函数同名,且功能相同,但每个函数都多了一个参数,用来选择滚动条。
7.GetScrollPos()函数
该成员函数声明如下:
int GetScrollPos(int nBar) const;
参数nBar 用来选择滚动条,可以为下列值。
? SB_HORZ:指定水平滚动条。
? SB_VERT:指定垂直滚动条。
枫叶文学网www.fywxw.com
第5 章 常用控件
·111·
8.OnHScroll()和OnVScroll()函数
无论是标准滚动条,还是滚动条控件,滚动条的通知消息都是用WM_HSCROLL 和
WM_VSCROLL 消息发送出去的。对这两个消息的默认处理函数是CWnd::OnHScroll 和
CWnd::OnVScroll,一般需要在派生类中对这两个函数从新设计,以实现滚动功能。这两个函
数的声明如下:
afx_msg void OnHScroll(UINT nSBCode,UINT nPos,CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode,UINT nPos,CScrollBar* pScrollBar);
参数nSBCode 是通知消息码,主要通知码如表5-7 所示。nPos 是滚动框的位置,只有在
nSBCode 为SB_THUMBPOSITION 或SB_THUMBTRACK 时,该参数才有意义。如果通知
消息是滚动条控件发来的,那么pScrollBar 是指向该控件的指针,如果是标准滚动条发来的,
则pScrollBar 为NULL。