MFC DoModal()对话框始终位于所有应用程序的顶部

MFC DoModal()对话框始终位于所有应用程序的顶部,mfc,Mfc,我有一个对话框(D1),它使用DoModal()创建一个新的对话框(D2)。 我注意到的是,对话D2始终位于顶部。即使我打开了一个新的应用程序,在使用该应用程序时,对话框D2也会出现在它的顶部 我希望对话框D2仅在我的应用程序上下文中始终位于顶部,而不是在我同时使用的所有应用程序中。谁能告诉我如何解决这个问题吗?非常感谢。系统模式不是针对该窗口,而是针对基础窗口设置为true。将其设置为false可解决此问题 非常感谢。系统模式不是针对该窗口,而是针对基础窗口设置为true。将其设置为false

我有一个对话框(D1),它使用DoModal()创建一个新的对话框(D2)。 我注意到的是,对话D2始终位于顶部。即使我打开了一个新的应用程序,在使用该应用程序时,对话框D2也会出现在它的顶部


我希望对话框D2仅在我的应用程序上下文中始终位于顶部,而不是在我同时使用的所有应用程序中。谁能告诉我如何解决这个问题吗?

非常感谢。系统模式不是针对该窗口,而是针对基础窗口设置为true。将其设置为false可解决此问题

非常感谢。系统模式不是针对该窗口,而是针对基础窗口设置为true。将其设置为false可解决此问题

您是否为对话框设置了WS_EX_最顶层的样式?它不太可能与DoModal()或MFC有任何关系。它可能是资源中的对话框样式设置。如果您需要帮助,您应该提供对话框资源的源。您描述的是模态对话框的标准行为:模态对话框始终以Z顺序位于其所有者窗口的前面。如果您的一个模式对话框位于所有其他窗口的前面,则这是一个错误。@AndrewTruckle:OP的意思是,他们想要的是标准行为(拥有的窗口在其各自所有者的前面,按Z顺序排列)。OP还说,他们的应用程序表现出不同的行为,其中模式对话框位于系统中所有窗口的前面。这是一个错误,无论是在他们的代码或MFC。在没有看到的情况下,这个问题要求我们猜测。您是否在资源编辑器中将表单属性的“系统模式”设置为“True”?@sergiol非常感谢。不是为该窗口设置为true,而是为基础窗口设置为true。将其设置为false可解决此问题!!您是否为对话框设置了WS_EX_最顶层的样式?它不太可能与DoModal()或MFC有任何关系。它可能是资源中的对话框样式设置。如果您需要帮助,您应该提供对话框资源的源。您描述的是模态对话框的标准行为:模态对话框始终以Z顺序位于其所有者窗口的前面。如果您的一个模式对话框位于所有其他窗口的前面,则这是一个错误。@AndrewTruckle:OP的意思是,他们想要的是标准行为(拥有的窗口在其各自所有者的前面,按Z顺序排列)。OP还说,他们的应用程序表现出不同的行为,其中模式对话框位于系统中所有窗口的前面。这是一个错误,无论是在他们的代码或MFC。在没有看到的情况下,这个问题要求我们猜测。您是否在资源编辑器中将表单属性的“系统模式”设置为“True”?@sergiol非常感谢。不是为该窗口设置为true,而是为基础窗口设置为true。将其设置为false可解决此问题!!