Ventana de consola de progtwigción de progtwigción de Win32

Estoy aprendiendo C ++ e hice un progtwig nuevo y eliminé parte del código y ahora la ventana de mi consola no se oculta, ¿hay alguna manera de ocultarlo al inicio sin que ellos lo vean?

Si está escribiendo un progtwig de consola y desea desconectar su progtwig de la consola con la que comenzó, llame a FreeConsole . En última instancia, probablemente no estará satisfecho con lo que realmente hace esa función, pero esa es la respuesta literal a la pregunta que hizo.

Si está escribiendo un progtwig que nunca quiere tener una consola, configure su proyecto para que no sea un progtwig de consola. “Consola” es una propiedad del archivo EXE. El sistema operativo lee esa configuración y decide si asigna una consola para su progtwig antes de que se ejecute alguna vez el código , por lo que no puede controlarlo dentro del progtwig. A veces, un progtwig que no es de consola se denomina “progtwig de GUI”, por lo que puede buscar una opción entre “consola” y “GUI” en las opciones de configuración de su entorno de desarrollo. Sin embargo, configurarlo en la GUI no requiere que tengas ninguna interfaz de usuario en absoluto. La configuración simplemente controla si su progtwig comienza con una consola.

Si está intentando escribir un progtwig que a veces puede tener una consola y otras no, entonces vea una pregunta anterior: ¿Puede uno ejecutable ser una consola y una aplicación GUI?

Suponiendo que está en Windows, configure su vinculador para hacer un progtwig de interfaz gráfica de usuario, no un progtwig de consola.

  • VS: busque en los enlaces las propiedades del proyecto
  • LINK: add / SUBSYSTEM: WINDOWS
  • MinGW: -mwindows
 #include  #include  using namespace std; void Stealth() { HWND Stealth; AllocConsole(); Stealth = FindWindowA("ConsoleWindowClass", NULL); ShowWindow(Stealth,0); } int main() { cout< <"this sentence is visible\n"; Stealth(); //to hide console window cout<<"this sentence is not visible\n"; system("PAUSE"); return EXIT_SUCCESS; } 

Solía ​​usar ShowWindow (GetConsoleWindow(), SW_HIDE); en tal caso, sin embargo, si no necesita consola, no cree un proyecto de aplicación de consola.

Como ya se dijo, iniciar la aplicación con consola o no se establece en el exe. Usando el comstackdor gnu, la opción es -mwindows para ninguna consola, por ejemplo

 g++ -mwindows winapp.c 

parece que el método

 #define _WIN32_WINNT 0x0500 #include  .... case WM_CREATE : ShowWindow (GetConsoleWindow(), SW_HIDE); 

cierre todas las consolas para padres también, así que si inicia el winapp.exe desde una consola de línea de comandos, ¡esto también se cerrará!

Puedes crear tu ventana minimizada. O pintarlo fuera de la pantalla visible.

Pero también podrías haber jugado con las banderas de creación de ventanas. Si realmente arruinaste las cosas. A menudo es mejor comenzar una nueva ventana. (O restaurar desde una versión anterior, o la copia de seguridad).

Para ocultar / mostrar literalmente la ventana de la consola bajo demanda, puede usar las siguientes funciones: Es posible ocultar / mostrar la consola usando ShowWindow . GetConsoleWindow recupera el identificador de ventana utilizado por la consola. IsWindowVisible se puede usar para verificar si una ventana (en ese caso, la consola) es visible o no.

 #include  void HideConsole() { ::ShowWindow(::GetConsoleWindow(), SW_HIDE); } void ShowConsole() { ::ShowWindow(::GetConsoleWindow(), SW_SHOW); } bool IsConsoleVisible() { return (::IsWindowVisible(::GetConsoleWindow()) != FALSE); }