在尝试打开另一个对话框关闭文档时,偶尔会出现Word给出的错误,但我一直无法弄清它为什么会发生。
在尝试打开另一个对话框关闭文档时,偶尔会出现Word给出的错误,但我一直无法弄清它为什么会发生。
Answers:
因为大多数对话框被认为是“ 模态 ”的,这意味着在对话框本身关闭之前,控件不会传递回主程序或调用容器。这是设计使然,程序员可以选择将窗口设为模态窗口或非模态窗口。通常,如果主程序在通过选择(Ok)或中止(Cancel)处理打开的对话框之前无法或不应该继续运行,则将窗口定义为模态窗口。
因为程序是按这种方式设计的,所以避免采取用户可能不希望采取的措施。
通常,当程序需要用户指导某些操作时,会显示一个对话框。关闭未保存的文档就是一个很好的例子:对话框提供了保存更改,放弃更改或中止关闭并返回编辑的功能。该程序有意拒绝关闭而不回答这个问题,因为关闭将迫使采取某些措施。该程序无法自行决定,例如。放弃最近的编辑,或者相反,使用键盘上的猫打字覆盖正确的版本。
即使我们认为与关闭无关的对话框,通常也意味着某些过程正在进行中,尚未完成,用户必须决定采用哪种方法。它不能被“简单地中止”,因为中止也是用户可能不想要的动作。
它也简化了程序的设计,因为它的创建者不必为每个功能创建“安全的出路”。
如今,大多数对话框在技术上都不是模态的(程序仍然是负责任的),但是从更广泛的程序逻辑流程的角度来看,使它们成为模态仍然更加容易。
在窗帘的后面,程序(在我们的示例中为MS Word)在创建窗口时创建了“ X按钮单击事件处理程序”。当有一个对话框窗口时,Word会记录下来。然后,在X按钮处理程序中,单击X按钮时,它将检查记录的打开的对话窗口。如果存在,则处理程序中止关闭操作。如果没有,它将终止程序,操作系统将清理程序占用的内存。这就是它的工作方式。