0

在 Win32 编程中,MessageBox 函数会启动一个需要操作的对话框,在您按下“确定”之前,您不能将焦点放在应用程序中的另一个窗口上。好吧,我有一个在 Visual Studio 2008 的资源编辑器中设计的对话框,问题是我可以单击启动它的菜单项,而当该对话框仍在显示时,我可以再次单击它并显示另一个其中。我也可以在对话框打开时使用我的应用程序的其余部分。

我想让用户必须在我的自定义对话框上按“确定”或“取消”才能在应用程序中执行任何其他操作,就好像它是一个 MessageBox。我将如何做到这一点?我可以在 Dialog 资源上设置特定的 windows 样式或 ex-style 吗?我试过 WS_TOPMOST 但没有效果,我不知道还能尝试什么。

4

1 回答 1

1

您的对话框需要使用DialogBox() 启动。DialogBoxParam()或任何直接对话框模式启动器。此外,当您调用它时,您需要确保并提供应用程序的顶级窗口作为父窗口。这样做应该使您的对话框成为模态的,而不是无模态的。在资源脚本中为您的对话框模板使用 WS_POPUP 窗口样式也很重要,但它通常是默认设置的,因此这可能不是您的问题。

于 2012-10-02T06:35:08.870 回答