输出文字(三十六)

2010-12-30 21:10:02 · 作者: · 浏览: 24518
围,卷动方块的实际物理位置数仍然由卷动列的图素大小限制)。然而,当使用SB_THUMBTRACK或SB_THUMBPOSITION通知码得到WM_VSCROLL或WM_HSCROLL讯息时,只提供了16位元资料来指出卷动方块的目前位置。通过GetScrollInfo函式可以取得真实的32位元值。

SetScrollInfo和GetScrollInfo函式的语法是

SetScrollInfo (hwnd, iBar, &si, bRedraw) ;
GetScrollInfo (hwnd, iBar, &si) ;

像在其他卷动列函式中那样,iBar参数是SB_VERT或SB_HORZ,它还可以是用於卷动列控制的SB_CTL。SetScrollInfo的最後一个参数可以是TRUE或FALSE,指出了是否要Windows重新绘制计算了新资讯後的卷动列。

两个函式的第三个参数是SCROLLINFO结构,定义为:

typedef struct tagSCROLLINFO
{
UINT cbSize ; // set to sizeof (SCROLLINFO)
UINT fMask ; // values to set or get
int nMin ; // minimum range value
int nMax ; // maximum range value
UINT nPage ; // page size
int nPos ; // current position
int nTrackPos ;// current tracking position
}
SCROLLINFO, * PSCROLLINFO ;

在程式中,可以定义如下的SCROLLINFO结构型态:

SCROLLINFO si ;

在呼叫SetScrollInfo或GetScrollInfo之前,必须将cbSize栏位设定为结构的大小:

si.cbSize = sizeof (si) ;

si.cbSize = sizeof (SCROLLINFO) ;

逐渐熟悉Windows後,您就会发现另外几个结构像这个结构一样,第一个栏位指出了结构大小。这个栏位使将来的Windows版本可以扩充结构并添加新的功能,并且仍然与以前编译的版本相容。

把fMask栏位设定为一个以上以SIF字首开头的旗标,并且可以使用C的位元操作OR运算子(|)组合这些旗标。

SetScrollInfo函式