|
一个清单方块是字串的集合,这些字串是一个矩形中可以卷动显示的清单。-程式通过向清单方块视窗讯息处理程式发送讯息,可以在清单中增加或者删除字串。当清单方块中的某项被选择时,清单方块控制项就向其父视窗发送WM_COMMAND讯息,父视窗也就可以确定选择的是哪一项。
一个清单方块可以是单选的,也可以是多选的,後者允许使用者从清单方块中选择多个项目。当清单方块拥有输入焦点时,其中项目的周围显示有虚线。在清单方块中,游标位置并不指明被选择的项目。被选择的项目被加亮显示,并且是反白显示的。
在单项选择的清单方块中,使用者按Spacebar键就可以选择游标所在位置的项目。方向键移动游标和目前选择指示,并且能够滚动清单方块的内容。Page
Up和Page
Down键也能滚动清单方块,但它移动的是游标而不是选择指示。按字母键能将游标和选择指示移到以此字母开头的第一个(或下一个)选项。也可以使用滑鼠在要选择的项目上单击或者双击来选择它。
在多项选择清单方块中,Spacebar键可以切换游标所在位置的项目的选择状态(如果该项已经被选择,则取消选择)。如同在单项选择清单方块中一样,方向键取消前面选择过的项目,并且移动游标和选择指示。但是,Ctrl键和方向键能够在移动游标的同时不移动选择,Shift键加方向键能扩展一个选择。
在多项选择清单方块中,单击或者双击滑鼠按键能取消之前所有的选择,而选择被点中的项目。但是,如果在滑鼠点中某一项的同时也按下Shift键,则只能切换该项的选择状态,而不会改变任何其他项的选择状态。
清单方块样式
当您使用CreateWindow建立清单方块子视窗时,您应该将「listbox」作为视窗类别,将WS_CHILD作为视窗样式。但是,这个内定清单方块样式不向其父视窗发送WM_COMMAND讯息,这样一来,程式必须向清单方块询问其中的项目的选择状态(借助於发送给清单方块控制项的讯息)。所以,清单方块控制项通常都包括清单方块样式识别字LBS_NOTIFY,它允许父视窗接收来自清单方块的WM_COMMAND讯息。如果您希望清单方块控制项对清单方块中的项目进行排序,那么您可以使用另一种常用的样式LBS_SORT。
内定情况下,清单方块是单项选择的。多项选择的清单方块相当少。如果您想建立一个多项选择清单方块,那么您可以使用样式LBS_MULTIPLESEL |