非模态对话方块

编辑:涌流网互动百科 时间:2020-06-01 13:05:14
编辑 锁定
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
非模态对话方块(不包括系统模态对话方块)允许使用者在对话方块与其他程式之间进行切换。但是,使用者不能切换到同一程式的另一个视窗,直到模态对话方块被清除为止。非模态对话方块允许使用者在对话方块与其他程式之间进行切换,又可以在对话方块与建立对话方块的视窗之间进行切换。因此,非模态对话方块与使用者程式常见的普通弹出式视窗可能更为相似
中文名
非模态对话方块
允    许
使用者在对话方块与其他程式切换
相似
普通弹出式视窗
建    立
用DialogBox来建立

非模态对话方块模态对话方块

编辑
当使用者觉得让对话方块保留片刻会更加方便时,使用非模态对话方块是合适的。例如,文书处理程式经常使用非模态对话方块来进行「Find」和「Change」操作。如果「Find」对话方块是模态的,那么使用者必须从功能表中选择「Find」,然後输入要寻找的字串,结束对话方块,传回到档案中,接著再重复整个程序来寻找同一字串的另一次出现。允许使用者在档案与对话方块之间进行切换则会方便得多。

非模态对话方块建立

编辑
您已经看到,模态对话方块是用DialogBox来建立的。只有在清除对话方块之后,函式才会传回值。在对话方块程序内使用EndDialog呼叫来终止对话方块,DialogBox传回的是该呼叫的第二个参数的值。非模态对话方块是使用CreateDialog来建立的,该函式所使用的参数与DialogBox相同。
hDlgModeless = CreateDialog ( hInstance, szTemplate,hwndParent, DialogProc) ;
区别是CreateDialog函式立即传回对话方块的视窗代号,并通常将这个视窗代号存放到整体变数中。
尽管将DialogBox这一名字用於模态对话方块而CreateDialog用於非模态对话方块是随意的,但是您可以通过非模态对话方块与普通视窗类似这一点来记住这两个函式的区别。CreateDialog可以令人想起CreateWindow函式来,而後者建立的是普通视窗。
词条标签:
计算机学 游戏 其他