无法在Visual Studio 2017中同时获得2个子窗口

Unable to get 2 sub-windows to pop up simultaneously in Visual Studio 2017

本文关键字:2个 窗口 Visual Studio 2017      更新时间:2023-10-16

我无法在运行程序时同时到达子窗口。关闭第一个窗口后,我能够获取一个窗口弹出窗口,然后再弹出另一个窗口。这是在循环中重复的。我是Visual Studio和C 的新手,因此将不胜感激。我使用自动生成的窗口表单来创建我的空白表单,该表格位于Visual Studio的" CLR"选项卡下。

#include "MyForm.h"
#include "MyFormNoFrame.h"
#include <iostream>
using namespace std;
using namespace windowsproject;
[STAThreadAttribute]
int main() {
MyForm a;
MyFormNoFrame b;
while (1 == 1) {
    b.ShowDialog();
    a.ShowDialog();
}
return 0;
}

myform和myformnoframe是包含弹出窗口格式和设计的两个.h文件。我创建了一个简单的循环来显示这两种形式,但是它们彼此关闭后分别弹出。有什么方法可以同时弹出?

对话框有两种口味,即模态和模型。在处理可以继续之前,必须关闭模态对话框。这使代码变得更加简单。通过无调的对话框,对话框以及其他地方都可能发生事情。有了两个无模式对话框,还有更多的可能性。

您的代码清楚地使用了模态对话框,即使您没有向我们展示如何创建这些对话框。从您描述的行为中可以明显看出。a.ShowDialog()等待模态对话框关闭。

请注意,所有对话框都是Windows,但并非所有Windows都是对话框。您可以完全从头开始创建自己的窗口,并实现您想要的任何行为。对话框基本上是OS本身提供大部分行为的窗口。MessageBox对话框是一个极端情况,您只提供内容,根本没有代码。