Viene chiamata la funzione WinMain dal sistema come punto di ingresso iniziale per un'applicazione basata su Win32.
int WINAPI WinMain ( HINSTANCE , hInstance, / / handle all'istanza correnteHINSTANCEhPrevInstance, / / handle all'istanza precedenteLPSTRlpCmdLine, / / puntatore a riga di comandointnCmdShow / / Mostra stato di finestra);
Se avete bisogno di rilevare se esiste già un'altra istanza, creare un mutex denominato in modo univoco tramite il CreateMutex funzione. CreateMutex avrà esito positivo anche se il mutex esiste già, ma la funzione GetLastError restituirà ERROR_ALREADY_EXISTS. Questo indica che esiste un'altra istanza dell'applicazione, perché è creato il mutex prima.
| Valore | Significato |
|---|---|
| SW_HIDE | Nasconde la finestra e attiva un'altra finestra. |
| SW_MINIMIZE | Minimizza la finestra specificata e attiva la finestra di livello superiore nell'elenco del sistema. |
| SW_RESTORE | Attiva e viene visualizzata una finestra. Se la finestra è ridotto a icona o ingrandita, il sistema ripristina per dimensioni e posizione (lo stesso che SW_SHOWNORMAL) originali. |
| SW_SHOW | Attiva una finestra e lo visualizza nella sua attuale dimensione e posizione. |
| SW_SHOWMAXIMIZED | Attiva una finestra e lo Visualizza come una finestra ingrandita. |
| SW_SHOWMINIMIZED | Attiva una finestra e lo visualizza un'icona. |
| SW_SHOWMINNOACTIVE | Visualizza una finestra come un'icona. La finestra attiva rimane attiva. |
| SW_SHOWNA | Visualizza una finestra nel suo stato attuale. La finestra attiva rimane attiva. |
| SW_SHOWNOACTIVATE | Visualizza una finestra nella sua dimensione e la posizione più recenti. La finestra attiva rimane attiva. |
| SW_SHOWNORMAL | Attiva e viene visualizzata una finestra. Se la finestra è ridotto a icona o ingrandita, il sistema ripristina per dimensioni e posizione (lo stesso che SW_RESTORE) originali. |
Se la funzione ha esito positivo, che chiude quando riceve un messaggio WM_QUIT, esso deve restituire il valore di uscita contenuto nel parametro wParam di quel messaggio. Se la funzione termina prima di entrare nel ciclo di messaggi, essa dovrebbe restituire zero.
Vostro WinMain deve inizializzare l'applicazione, visualizzare la sua finestra principale e immettere un ciclo di reperimento e invio di messaggi che è la struttura di controllo di primo livello per il resto dell'esecuzione dell'applicazione. Quando riceve un messaggio WM_QUIT di terminare il ciclo di messaggi. A quel punto, tuo WinMain dovrebbe uscire dall'applicazione, restituendo il valore passato in parametro wParam del messaggio WM_QUIT. Se WM_QUIT è stato ricevuto in seguito alla chiamata PostQuitMessage, come descritto, il valore di wParam è il valore del parametro nExitCode della funzione PostQuitMessage, come descritto . Per ulteriori informazioni, vedere creazione di un ciclo di messaggi.
Applicazioni ANSI possono utilizzare il parametro lpCmdLine della funzione WinMain per accedere alla stringa della riga di comando, escludendo il nome del programma. La ragione per cui WinMain non può restituire stringhe Unicode è che quel lpCmdLine utilizza il tipo di dati LPSTR , non i dati LPTSTR digitare. La funzione GetCommandLine può essere utilizzata per accedere stringhe Unicode nella riga di comando, perché utilizza il tipo di dati LPTSTR.
Windows CE: Windows CE non supporta i seguenti valori per il parametro nCmdShow
SW_MINIMIZE
SW_RESTORE
SW_SHOWMAXIMIZED
SW_SHOWMINIMIZED
SW_SHOWMINNOACTIVE
nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in Winbase.
Importare librerie:Definito dall'utente.
Panoramica di Windows, le funzioni finestra, CreateMutex, DispatchMessage, GetCommandLine, GetMessage, PostQuitMessage, come descritto, TranslateMessage