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;
}
GetForegroundWindow(), qui:
ShowWindow(), qui: