Una routine della finestra di progettazione

Nell'esempio seguente viene illustrata la struttura di una routine della finestra tipico. La routine della finestra utilizza l'argomento del messaggio in un'istruzione switch con singoli messaggi gestiti dalle dichiarazioni del caso separato. Si noti che ogni caso restituisce un valore specifico per ogni messaggio. Per i messaggi che non elabora, la routine della finestra chiama la funzione DefWindowProc.

LRESULT CALLBACK MainWndProc (
    HWND hwnd, / / handle alla finestra
    UINT uMsg, / / identificatore il messaggio
    WPARAM wParam, / / messaggio primo parametro
    LPARAM lParam) / / secondo parametro message
{switch (uMsg) {caso WM_CREATE: / / Initialize della finestra. 
            return 0; 
 
        caso WM_PAINT: / / Paint area client della finestra. 
            return 0; 
 
        caso WM_SIZE: / / imposta la dimensione e la posizione della finestra. 
            return 0; 
 
        caso WM_DESTROY: / / ripulire gli oggetti dati specifici della finestra. 
            return 0; 
 
        / / / / Processo altri messaggi. 
        / / default: restituire DefWindowProc (hwnd, uMsg, wParam, lParam); 
    } return 0; 
} 
 

La messageis WM_NCCREATE inviato solo dopo la vostra finestra è stata creata, ma se un'applicazione non risponde a questo messaggio restituendo FALSE, viene a mancare funzione CreateWindowEx . Invio del messaggio WM_CREATE dopo che sia già stata creata la finestra.

Il messaggio WM_DESTROY viene inviato quando la finestra è in procinto di essere distrutto. La funzione DestroyWindow si prende cura di distruggere tutte le finestre del bambino della finestra viene distrutta. Invio del messaggio WM_NCDESTROY appena prima che una finestra viene distrutto.

Per lo meno, una routine della finestra deve elaborare il messaggio WM_PAINT per attirare a sé. In genere, dovrebbero gestire i messaggi di mouse e tastiera pure. Consultare le descrizioni dei singoli messaggi per determinare se la vostra routine della finestra dovrebbe gestire li.

L'applicazione può chiamare la funzione DefWindowProc come parte dell'elaborazione di un messaggio. In tal caso, l'applicazione può modificare i parametri del messaggio prima di passare il messaggio a DefWindowProc, o può continuare con il valore predefinito dopo aver eseguito le proprie operazioni di elaborazione.

Una routine di finestra di dialogo casella riceve un messaggio WM_INITDIALOG invece di un messaggio WM_CREATE e non passa i messaggi non trasformati alla funzione DefDlgProc . In caso contrario, una routine di finestra di dialogo è esattamente lo stesso di una routine della finestra.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index