我已经创建了一个现有应用程序的对话框(我不知道它的整个结构),并且对话框保持最高的Z顺序在操作系统中显示的所有窗口而不是应用程序中的最高版本。
以下是我如何实施它的草图:
消息地图ON_COMMAND
将菜单链接到处理函数OnTestDialog()
,如下所示:
void CSettle3DDoc::OnTestDialog(){
UpdateAllViews(NULL);
CDlg_Test_Dialog dlg;
dlg.DoModal();
}
CDlg_Test_Dialog
是ETSLayoutDialog
的子类,您可以在此处找到代码:http://www.codeproject.com/Articles/116/Layout-Manager-for-Dialogs-Formviews-DialogBars-an
从那里::OnInitDialog()
调用ETSLayoutDialog::OnInitDialog()
,并初始化其他与Z顺序无关的变量。
初始化后,没有其他代码导致Dialog的Z顺序发生变化。 保持在应用程序内的其他窗口之上是可以接受的,但阻止其他应用程序的视图有点烦人,我希望它得到修复:(
任何见解都将不胜感激。