Projektowanie procedurę okna

Poniższy przykład przedstawia strukturę procedurę typowe okna. Procedurę okna używa argumentu komunikat w instrukcji przełączyć z poszczególnych wiadomości obsługiwane przez oddzielny przypadku sprawozdania. Należy zauważyć, że każdy przypadek zwraca wartość określonej dla każdej wiadomości. Dla wiadomości, które nie przetwarzają procedurę okna wywołuje funkcję DefWindowProc.

(Wywołanie zwrotne MainWndProc LRESULT
    HWND hwnd, / / dojście do okna
    UINT uMsg, / / wiadomości identyfikator
    WPARAM wParam, / / po raz pierwszy wiadomości parametr
    FIKCYJNYMI fikcyjnymi) / / drugi parametr message
{przełącznika (uMsg) {Sprawa WM_CREATE: / / Inicjowanie okna. 
            zwrócona wartość 0; 
 
        Sprawa WM_PAINT: / / malowanie obszaru okna klienta. 
            zwrócona wartość 0; 
 
        Sprawa WM_SIZE: / / Set rozmiar i położenie okna. 
            zwrócona wartość 0; 
 
        Sprawa WM_DESTROY: / / Oczyść obiekty dane specyficzne dla okna. 
            zwrócona wartość 0; 
 
        / / / / Procesu innych wiadomości. 
        / / default: Powrót DefWindowProc (hwnd, uMsg, wParam, fikcyjnymi); 
    } zwraca 0; 
} 

 

Messageis WM_NCCREATE wysyłane tylko po utworzeniu okna, ale jeżeli aplikacji odpowiada tej wiadomości przez zwrócenie FAŁSZ, funkcji CreateWindowEx Funkcja zawiedzie. Po oknie jest już utworzony zostanie wysłany komunikat WM_CREATE.

Wiadomość WM_DESTROY jest wysyłany, gdy okna ma być zniszczone. Funkcja DestroyWindow opiekuje się zniszczenia wszelkich okien podrzędnych okna zniszczeniu. Tuż przed okno zostaje wysłany komunikat WM_NCDESTROY.

Co najmniej, przetwarza procedurę okna WM_PAINT wiadomość do siebie. Zazwyczaj powinien obsługiwać wiadomości myszy i klawiatury. Konsultacje opisy poszczególnych wiadomości do określenia, czy procedura okna należy je obsłużyć.

Aplikacja może wywołać funkcję DefWindowProc jako część przetwarzania wiadomości. W takim przypadku wniosek można zmodyfikować parametry wiadomości przed przekazaniem komunikatu do DefWindowProc, lub można kontynuować domyślne przetwarzania po wykonaniu swoich własnych działań.

Procedurę pole dialogowe odbiera komunikat WM_INITDIALOG zamiast komunikatu WM_CREATE i niepomyślnie nieprzetworzonych wiadomości do funkcji DefDlgProc . W przeciwnym razie procedurę pole dialogowe są dokładnie takie same jak procedury okna.

Index