如何在 Visual Studio C++ 中使用代码关闭控制台窗口

Posted

技术标签:

【中文标题】如何在 Visual Studio C++ 中使用代码关闭控制台窗口【英文标题】:How to Close Console Window with code in Visual studios C++ 【发布时间】:2020-07-08 22:29:56 【问题描述】:

我已经构建了一个小型菜单系统。我正在寻找添加一个选项来关闭代码运行时弹出的控制台窗口,但我还没有找到任何可以这样做的东西。有人可以帮忙吗?

这是我到目前为止遵循 Paddy 在下面的 cmets 中所说的代码

void Menu::Output() 
    HWND WINAPI GetConsoleWindow(void);

    int number;
    cin >> number;

    switch (number) 
    case 1:
        GetterAndSetters();
        break;
    case 2:
        OverloadingConstructors();
        break;
    case 3:
        ThisKeyword();
        break;
    case 4:
        Constructor_INIT_List();
        break;
    case 5:
        DestroyWindow;
        //FreeConsole();
        break;
    default:
        cout << "nothing selected" << endl;
    
    cout << "\nType BACK to return to Menu \nEnter Here>> " << flush;

    string password;
    cin >> password;

    if (password == "back") 
        system("CLS");
        MenuOver();
    

案例 5 中运行的代码没有达到预期的效果。我只是想知道我做得对吗?

【问题讨论】:

您可以调用FreeConsole,如果您的进程是唯一使用控制台的进程,它将关闭。这还不够吗? 我希望完全关闭控制台窗口,以便让我回到代码中 您是否尝试过通过GetConsoleWindow 获取控制台窗口的句柄,然后调用CloseWindowDestroyWindow 我输入的代码是否正确? 【参考方案1】:

我建议你可以使用SendMessage()来关闭窗口。

HWND hwnd= GetConsoleWindow();
int number;
cin >> number;
switch (number)

//....

case 5:
    SendMessage(hwnd, WM_CLOSE, 0, 0);
    //FreeConsole();
    break;

另外,你可以参考这个link。

【讨论】:

感谢您的帮助

以上是关于如何在 Visual Studio C++ 中使用代码关闭控制台窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ubuntu 中使用 Visual Studio Code 编译 C++ 代码? [关闭]

如何在 Visual Studio C++ 中使用文件夹?

如何在 Visual Studio 2017、C++、CMake 中使用数据断点?

如何在 C++ 中使用 Microsoft Visual Studio 2012 查找语法错误?

如何在 Visual Studio 2017 [C++] 中使用 GLOP 线性求解器

如何在visual studio2008中创建,编译和运行C++程序,