C++ Prevent the console window from closing when red X is clicked
console-application, visual-c++, windows
Solution
This worked for me:
#include "conio.h"
void main()
{
HWND hwnd = GetConsoleWindow();
HMENU hmenu = GetSystemMenu(hwnd, FALSE);
EnableMenuItem(hmenu, SC_CLOSE, MF_GRAYED);
}
While we're at it, to re-enable the button:
EnableMenuItem(hmenu, SC_CLOSE, MF_ENABLED);
... and to set the window's title:
char consoleTitle[256];
wsprintf(consoleTitle, _T("My little window"));
SetConsoleTitle((LPCTSTR)consoleTitle);
I saw that most references used `DeleteMenu` and not `EnableMenuItem`. I preffer the later, as you get more control (enable/disable/greyed-out etc.). For full options, take a look at MSDN Console Functions and Menu Functions
Problem
I'm developing a simple C++ console application without classes & objects. Is there any method or function to prevent the console from closing when red X button is clicked ? I'm using Visual Studio C++ Express 2010 : A simple console application which containes only main.cpp file. Thank you for answering my question :) !!