非模态应用程序尝试着让在线和离线之间无缝集成,没有重要的界面改变。
请注意,无模式对话框以两种不同的方式与它的父对话框通信。
Office对象模型支持托管的无模式窗体;但建议不要在后台线程上使用它们。
窗体是独立的顶层窗口,行为方面与非模态对话框相同。
我们必须打破这种习惯,设计师必须确保所有的非模态对话框有清晰醒目的视觉差异。
DHTMLwindows:DHTMLwindow为在页面内容上放置无模式的悬浮窗提供了一种机制。
相反,在非模态对话框存在的过程中,选择很可能发生改变。
无模式窗体的编程难度更大,因为用户访问这些窗体的顺序可能无法预知。
应用程序应该经常给使用者提供不唐突且无模式的反馈,这样使用者可以了解其工作状态。
但是,当窗体以无模式方式显示时,那么在该窗体显示之后,会立刻执行Show方法后面的代码。
确定给定的消息是否是送往无模式对话框的,如果是,则处理它。
另外,它还说明若干与将无模式对话框用作MFC应用程序主窗口有关的方法。
“无模式”窗体让您在此窗体与另一窗体之间变换焦点,而不必关闭初始窗体。
当用户在模态对话框或非模态对话框内单击Cancel按钮或按ESC键时,窗体调用这个成员函数。
传统上有两种常用的非模态工具习惯用法,其中非模态对话框是较老的一种。
对于无模式对话框接收的输入信息,我们可以以向父窗口发送消息的方式进行。
大多数非模态对话框实现得很笨拙,它们的行为很不一致,令人十分困惑。
同样,软件可以为我们提供大量运行状态的非模态反馈,我们将在第25章中讨论。
无模式窗口的常见示例包括属性窗口、工具箱和调色板。
它这样做只是为了方便;创建了无模式对话框后,不需要对其进行进一步管理。
调用该成员函数从对话框模板中创建一个非模态对话框。
恰当的解决方法是使动作易于恢复,并提供足够的非模态反馈,确保用户始终处于保护之下。
1·We must break this habit. The designer must assure that all modeless dialog boxes are rendered with a clearly noticeable visual difference.
我们必须打破这种习惯,设计师必须确保所有的非模态对话框有清晰醒目的视觉差异。
2·We must break this habit . The designer must assure that all modeless dialog boxes are rendered with a clearly noticeable visual difference.
我们必须打破这种习惯,设计师必须确保所有的非模态对话框有清晰醒目的视觉差异。
3·Provide modeless feedback to help users avoid mistakes.
提供非模态反馈来帮助避免用户犯错误。
4·Modeless applications attempt to transition seamlessly between online and offline states, without significant UI changes.
非模态应用程序尝试着让在线和离线之间无缝集成,没有重要的界面改变。
5·The idioms described in the previous section are all examples of rich visual modeless feedback, which we will discuss in detail in Chapter 25.
前面一节描述的习惯用法全部是丰富的非模态视觉反馈的例子,我们将在第25章中做详细讨论。