windows - C++ 防止控制台窗口在单击红色 X 时关闭

标签 windows visual-c++ console-application

我正在开发一个没有类和对象的简单 C++ 控制台应用程序。
单击红色 X 按钮时,是否有任何方法或功能可以防止控制台关闭?
我正在使用 Visual Studio C++ Express 2010:一个仅包含 main.cpp 文件的简单控制台应用程序。 感谢您回答我的问题:) !!

最佳答案

这对我有用:

#include "conio.h"
void main()
{
    HWND hwnd = GetConsoleWindow();
    HMENU hmenu = GetSystemMenu(hwnd, FALSE);
    EnableMenuItem(hmenu, SC_CLOSE, MF_GRAYED);
}

此时,重新启用按钮:

EnableMenuItem(hmenu, SC_CLOSE, MF_ENABLED);

...并设置窗口的标题:

char consoleTitle[256];
wsprintf(consoleTitle, _T("My little window"));
SetConsoleTitle((LPCTSTR)consoleTitle);

我看到大多数引用使用 DeleteMenu 而不是 EnableMenuItem。我更喜欢后者,因为您可以获得更多控制权(启用/禁用/灰显等)。有关完整选项,请查看 MSDN Console FunctionsMenu Functions

关于windows - C++ 防止控制台窗口在单击红色 X 时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15834818/

相关文章:

windows - 如何使用 Windows 7 打开 .vhdx?

c - 如何通过按键结束程序?

c++ - c/c++ for windows 中的 DNS 服务器

visual-c++ - 是否可以在绘制时查看后台缓冲区?

windows - 将 Oracles (dbstart/oratab) 指令从 Linux 转换为 Windows

javascript - 如何播放系统媒体声音

c# - 使用 IProgress.Report() 报告进度时,控制台消息的显示顺序不正确

c++ - 控制台输出溢出

c# - 从 C# 中的不同项目写入控制台应用程序项目

c++ - 将文件从不同的文件夹复制到 C++ 中的特定位置