18.3.4 变灰和可见性

2013-10-07 01:05:56 · 作者: · 浏览: 68

18.3.4  变灰和可见性

有两种方式表示对话框中的控件不能接受焦点:

使控件不可见;

使控件变灰。

可以使整行(提示和控件)不可见。控件环境完全支持这种行为:不可见控件在重绘和触笔处理中被忽略,而且对话框不允许不可见行获得焦点。

如果使控件变灰,它将在触笔处理中忽略。对话框不允许变灰行获得焦点。不过,控件环境不会在重绘中忽略变灰的控件;相反,控件的实现者必须编写Draw(),以显式地让控件变灰。

让控件变灰的好处是,即使用户不能更改控件上的值,但仍然可以看到控件及其包含的值。但是实际上,变灰是一件麻烦事情。因为控件编写者必须在Draw()中添加支持代码(使用逻辑颜色有助于完成控件变灰,请参见第17章了解更多相关知识)。不可用选项可能完全无意义,此时,我们并不希望变灰控件,而希望完全隐藏它。

UIQ 中的一些对话框使用了一种巧妙的折中方案。当调用 MakeLineVisible(EFalse)时,对话框将提示变灰,使通用控件不可见。用户看到正确的效果,通用控件不必显式地支持变灰,无需显示无意义的值。

变灰的相关函数位于CCoeControl中:

 

如果需要,在Draw()函数中可使用IsDimmed()。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节