六、Windows子窗口控件的清单方块类别
我在本章讨论的最后一个预先定义子窗口控件是清单方块。一个清单方块是字符串的集合,这些字符串是一个矩形中可以卷动显示的清单。-程序通过向清单方块窗口消息处理程序发送消息,可以在清单中增加或者删除字符串。当清单方块中的某项被选择时,清单方块控件就向其父窗口发送WM_COMMAND消息,父窗口也就可以确定选择的是哪一项。
一个清单方块可以是单选的,也可以是多选的,后者允许使用者从清单方块中选择多个项目。当清单方块拥有输入焦点时,其中项目的周围显示有虚线。在清单方块中,光标位置并不指明被选择的项目。被选择的项目被加亮显示,并且是反白显示的。
在单项选择的清单方块中,使用者按Spacebar键就可以选择光标所在位置的项目。方向键移动光标和目前选择指示,并且能够滚动清单方块的内容。Page Up和Page Down键也能滚动清单方块,但它移动的是光标而不是选择指示。按字母键能将光标和选择指示移到以此字母开头的第一个(或下一个)选项。也可以使用鼠标在要选择的项目上单击或者双击来选择它。
在多项选择清单方块中,Spacebar键可以切换光标所在位置的项目的选择状态(如果该项已经被选择,则取消选择)。如同在单项选择清单方块中一样,方向键取消前面选择过的项目,并且移动光标和选择指示。但是,Ctrl键和方向键能够在移动光标的同时不移动选择,Shift键加方向键能扩展一个选择。
在多项选择清单方块中,单击或者双击鼠标按键能取消之前所有的选择,而选择被点中的项目。但是,如果在鼠标点中某一项的同时也按下Shift键,则只能切换该项的选择状态,而不会改变任何其它项的选择状态。