无法在Visual Studio 2017中同时弹出2个子窗口

时间:2019-05-17 13:01:35

标签: c++ visual-studio clr

运行程序时,我无法同时进入子窗口弹出。关闭第一个窗口后,可以弹出一个窗口,然后弹出另一个窗口。这会循环重复。我是Visual Studio和C ++的新手,所以将不胜感激。我正在使用自动生成的Windows窗体来创建我的空白窗体,这些窗体位于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文件,它们包含弹出窗口的格式和设计。我创建了一个简单的循环来显示这两种形式,但是在彼此关闭后它们会分别弹出。有什么办法可以让它们同时弹出?

1 个答案:

答案 0 :(得分:0)

对话框有两种样式,有模式的和无模式的。必须关闭模式对话框,然后才能继续进行处理。这使代码更加简单。使用无模式对话框,可以在对话框中以及其他地方进行操作。借助两个无模式对话框,还有更多的可能性。

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

请注意,所有对话框均为窗口,但并非所有窗口均为对话框。您可以完全从头创建自己的窗口,并实现所需的任何行为。对话框基本上是Windows窗口,操作系统本身在其中提供许多行为。 MessageBox对话框是一种极端的情况,您只提供内容,根本不需要任何代码。