词条 | 卷动列类别 |
释义 | § 简介 与按钮控制项(以及将在後面讨论的编辑和清单方块控制项)不同,卷动列控制项不向父视窗发送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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。