Due premesse:
1) non sono un esperto, quindi prendi con le molle le mie "soluzioni";
2) non son certo d'aver capito bene quel che vorresti ottenere.
Detto questo, puoi
nascondere (non
chiudere) la finestra della console appena il programma viene avviato, in WinMain():
int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmnd, int show ) {
HWND hWndConsole = GetForegroundWindow();
ShowWindow( hWndConsole, SW_HIDE );
// [...]
Appena prima di uscire dal programma, alla fine di WinMain(), potresti renderla nuovamente visibile:
// [...]
ShowWindow( hWndConsole, SW_SHOW );
return messages.wParam;
} // fine di WinMain()
GetForegroundWindow(), qui:
ShowWindow(), qui: