请输入您要查询的百科知识:

 

词条 卷动列类别
释义

§ 简介

与按钮控制项(以及将在後面讨论的编辑和清单方块控制项)不同,卷动列控制项不向父视窗发送WM_COMMAND讯息,而是像视窗卷动列那样发送WM_VSCROLL和WM_HSCROLL讯息。在处理卷动讯息时,您可以通过lParam参数来区分视窗卷动列与卷动列控制项。对子视窗卷动列其值为0,对於卷动列控制项其值为卷动列视窗代号。对视窗卷动列和卷动列控制项来说,wParam参数的高字组和低字组的含义相同。

§ 说明

虽然视窗卷动列有固定的宽度,Windows使用CreateWindow呼叫中(或者在後面的MoveWindow呼叫中)给定的矩形尺寸来确定卷动列控制项的尺寸。您可以建立细而长的卷动列控制项,也可以建立短而粗的卷动列控制项。

如果您想建立与视窗卷动列尺寸相同的卷动列控制项,那么可以使用GetSystemMetrics取得水平卷动列的高度:

GetSystemMetrics (SM_CYHSCROLL) ;

或者垂直卷动列的宽度:

GetSystemMetrics (SM_CXVSCROLL) ;

根据Windows文件,卷动列窗样式识别字SBS_LEFTALIGN、SBS_RIGHTALIGN、SBS_TOP ALIGN和SBS_BOTTOMALIGN给出卷动列的标准尺寸,但是这些样式只在对话方块中对卷动列有效。

对视窗卷动列,您可以使用同样的呼叫来建立卷动列控制项的范围和位置:

SetScrollRange (hwndScroll, SB_CTL, iMin, iMax, bRedraw) ;

SetScrollPos (hwndScroll, SB_CTL, iPos, bRedraw) ;

SetScrollInfo (hwndScroll, SB_CTL, &si, bRedraw) ;

其区别在於:视窗卷动列将父视窗的代号作为第一个参数,并且以SB_VERT或者SB_HORZ作为第二个参数。

令人吃惊的是,名为COLOR_SCROLLBAR的系统颜色不再用於卷动列。两端的按钮和小方块的颜色由COLOR_BTNFACE、COLOR_BTNHILIGHT、COLOR_BTNSHADOW、COLOR_BTNTEXT (用於小箭头)、COLOR_DKSHADOW和COLOR_BTNLIGHT决定。两端按钮之间区域的颜色由COLOR_BTNFACE和COLOR_BTNHIGHLIGHT决定。

如果您拦截了WM_CTLCOLORSCROLLBAR讯息,那么可以在讯息处理中传回画刷以取代该颜色。让我们来试一下。

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/9/21 20:44:05