18.3.4 变灰和可见性
有两种方式表示对话框中的控件不能接受焦点:
使控件不可见;
使控件变灰。
可以使整行(提示和控件)不可见。控件环境完全支持这种行为:不可见控件在重绘和触笔处理中被忽略,而且对话框不允许不可见行获得焦点。
如果使控件变灰,它将在触笔处理中忽略。对话框不允许变灰行获得焦点。不过,控件环境不会在重绘中忽略变灰的控件;相反,控件的实现者必须编写Draw(),以显式地让控件变灰。
让控件变灰的好处是,即使用户不能更改控件上的值,但仍然可以看到控件及其包含的值。但是实际上,变灰是一件麻烦事情。因为控件编写者必须在Draw()中添加支持代码(使用逻辑颜色有助于完成控件变灰,请参见第17章了解更多相关知识)。不可用选项可能完全无意义,此时,我们并不希望变灰控件,而希望完全隐藏它。
UIQ 中的一些对话框使用了一种巧妙的折中方案。当调用 MakeLineVisible(EFalse)时,对话框将提示变灰,使通用控件不可见。用户看到正确的效果,通用控件不必显式地支持变灰,无需显示无意义的值。
变灰的相关函数位于CCoeControl中:
|
如果需要,在Draw()函数中可使用IsDimmed()。
【责任编辑:董书 TEL:(010)68476606】
| 回书目 上一节 下一节 |
