3. 按钮类组件
21) 问: 在进行 Windows 程序界面设计中,经常会用到按钮,在 C++Builder 中,按钮一定是通过按钮组件来实现的吗?
答: 是的,并且 C++Builder 的按钮类组件十分丰富。 BCB 提供了两类按钮类组件:一类是执行类按钮,另一类是信息类按钮。所谓执行类按钮是指它们通常用来启动程序运行的,比如按钮、位图按钮、加速按钮。而信息类按钮一般用来获取信息,包括单选按钮和复选框。灵活地使用各种按钮,不仅可以使程序更加丰富多彩,而且可以提高程序的性能。
22) 问: 那么按钮组件有哪些常用的属性和方法呢?
答: 对于按钮组件, Caption 属性用来描述按钮的标题,也就是按钮上显示的文本,它与标签组件很相识,我们同样可以在这个属性中为按钮指定快捷键。
当 Cancel 属性值为 True 时,用户无论何时按下 Esc 键,都会产生 OnClick 事件,当窗体上有多个按钮时, Esc 键触发 TabOrder 值最小的那个按钮的 OnClick 事件。它的缺省值为 False
当 Default 属性值为 true 时,用户无论何时按下 Enter 键时,都会产生 OnClick 事件,与 Cancel 属性不同的是,如果输入焦点正好在一个按钮上,那么会产生这个按钮的 OnClick 事件。否则,产生 TabOrder 的值最小的那个按钮的 OnClick 事件。它的缺省值为 True
Hint 属性保存着按钮的提示内容,当用户把鼠标光标停留在按钮上时,就会显示提示信息。
ShowHint 属性用来确定是否显示提示文本,缺省值为 False 。
按钮常用的事件就是 OnClick 事件, OnClick 事件在鼠标单击按钮时产生,另外,通过快捷键、 enter 键和 Esc 键也可以产生 OnClick 事件,一般情况下,按钮都需要增加 OnClick 事件处理程序。
23) 问: 那么位图按钮又有什么特点呢?
答: 位图按钮 BitBtn 除了可以像普通按钮那样显示文本外,还可以显示图形,除了具有一般按钮所具有的全部属性外,位图按钮还有一个特有的 Kind 属性。这个属性用来设定按钮为几种预定义图形按钮风格中的哪一种。这是几种预定义按钮风格。这些做好的按钮如下表:
Kind 属性值
按钮外观
等价属性设置
bkCustom
缺省值
用来给用户制定
bkOK
Caption=”OK”
ModalResult=mrOK
Default=true
bkCancel
Caption=”Cancel”
ModalResult=mrCancel
Cancel=true
bkYes
Caption=”&Yes”
ModalResult=mrYes
Default=true
bkNo
Caption=”&No”
ModalResult=mrNo
Cancel=true
bkHelp
Caption=”&Help”
bkClose
Caption=”&Close”
bkAbort
Caption=”Abort”
ModalResult=mrAbort
bkRetry
Caption=”&Retry”
ModalResult=mrRetry
bkIgnore
Caption=”&Ignore”
ModalResult=mrIgnore
bkAll
Caption=”&All”
ModalResult=mrAll
当把 Kind 的属性值设置为 bkCustom 时,还可以给位图按钮指定其他的图形,具体的方法是,在对象编辑器中选择 Glyph 属性,然后单击 Value 列中的省略号按钮,这时会出现一个图形编辑对话框,要求指定位图的位置。
单击 Load 按钮,在文件打开对话框中选择一个位图文件就可以了。要注意的是,如果选择的位图太大,位图按钮不会自动调整其尺寸,这时你只能看到一部分的图形。
24) 问: 位图按钮组件的 NumGlyph 属性有什么作用?
答: 属性 NumGlyph 指出位图按钮使用的位图的数目,当你需要位图按钮使用多个位图分别表示按下,弹起等不同状态时,必须保证这些位图具有相同的尺寸,并且一个接着一个地水平排列着。