문제

IM을 배우고 새로운 프로그램을 만들었고 코드의 일부를 삭제했는데 이제 콘솔 창이 숨기지 않을 것입니다.

도움이 되었습니까?

해결책

콘솔 프로그램을 작성하고 시작한 콘솔에서 프로그램을 분리하려는 경우 FreeConsole. 궁극적으로, 당신은 아마도 그 기능이 실제로하는 일에 만족하지 않을 것입니다. 그러나 그것은 당신이 묻는 질문에 대한 문자 그대로의 대답입니다.

처음에 콘솔을 갖고 싶지 않은 프로그램을 작성하는 경우 콘솔 프로그램이 아닌 프로젝트를 구성하십시오. "Consoleness"는 EXE 파일의 속성입니다. OS는 해당 설정을 읽고 프로그램에 콘솔을 할당할지 여부를 결정합니다. 코드가 실행되기 전에, 따라서 프로그램 내에서 제어 할 수 없습니다. 때로는 소비자가 아닌 프로그램을 "GUI 프로그램"이라고하며 개발 환경의 구성 옵션에서 "콘솔"과 "GUI"중에서 선택할 수 있습니다. GUI에 설정하지는 않습니다 필요하다 하지만 사용자 인터페이스가 전혀 없다는 것입니다. 설정은 단지 프로그램이 콘솔로 시작하는지 여부를 제어합니다.

때로는 콘솔을 가질 수 있고 때로는 그렇지 않은 프로그램을 작성하려는 경우 이전 질문을 참조하십시오. 하나의 실행 파일이 콘솔 및 GUI 앱이 될 수 있습니까?

다른 팁

Windows에 있다고 가정하면 링커를 구성하여 콘솔 프로그램이 아닌 GUI-Program을 만듭니다.

  • VS : 프로젝트 속성에 대한 링커 픽션을 살펴보십시오
  • 링크 : 추가 /하위 시스템 : Windows
  • Mingw : -Mwindows
#include <windows.h>
#include <iostream>
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;
}

나는 사용했었다 ShowWindow (GetConsoleWindow(), SW_HIDE); 이 경우 콘솔이 필요하지 않으면 콘솔 앱 프로젝트를 작성하지 마십시오.

이미 말했듯이, 콘솔로 응용 프로그램을 시작하거나 exe에 설정되어 있습니다. GNU 컴파일러 사용 옵션은 콘솔이없는 경우 -mwindows입니다.

g++ -mwindows winapp.c

그 방법은 것 같습니다

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

모든 상위 콘솔도 닫으므로 명령 줄 콘솔에서 winapp.exe를 시작하면 이것이 닫힙니다!

창을 최소화 할 수 있습니다. 또는 가시 화면 외부에 페인트하십시오.

그러나 당신은 또한 창 만들기 깃발을 엉망으로 만들 수도있었습니다. 당신이 정말로 물건을 엉망으로 만들었다면. 새 창을 시작하는 것이 종종 낫습니다. (또는 이전 버전 또는 백업에서 복원).

문자 그대로 요청시 콘솔 창을 숨기거나 표시하려면 다음 기능을 사용할 수 있습니다. 사용하여 콘솔을 숨기거나 표시 할 수 있습니다. 쇼 와디. GetConsolewIndow 콘솔에서 사용하는 창 손잡이를 검색합니다.iswindowvisible 창 (이 경우 콘솔이 표시되는 경우)이 표시되는지 확인하는 데 사용할 수 있습니다.

#include <Windows.h>

void HideConsole()
{
    ::ShowWindow(::GetConsoleWindow(), SW_HIDE);
}

void ShowConsole()
{
    ::ShowWindow(::GetConsoleWindow(), SW_SHOW);
}

bool IsConsoleVisible()
{
    return (::IsWindowVisible(::GetConsoleWindow()) != FALSE);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top