Rejestrowanie dziecka i ramki okna klasy

Typowa aplikacja MDI muszą zarejestrować dwie klasy okien: jeden dla jego okno ramek i jeden dla jego okien podrzędnych. Jeśli aplikacja obsługuje więcej niż jeden typ dokumentu (na przykład, arkusz kalkulacyjny i wykres), należy zarejestrować klasy okna dla każdego typu.

Struktura klas w oknie ramki jest podobna do struktury klasy okna głównego w aplikacjach innych niż MDI. Struktura klas dla okien podrzędnych MDI różnią się nieco od struktury dla okien podrzędnych w aplikacjach innych niż MDI następująco:

W poniższym przykładzie pokazano, jak Multipad rejestruje jego ramki i dziecko klasy okien.

BOOL WINAPI InitializeApplication() {WNDCLASS wc; 
 
    / / Register klasy okno ramki. 
 
    WC.style = 0; 
    WC.lpfnWndProc = (WNDPROC) MPFrameWndProc; 
    WC.cbClsExtra = 0; 
    WC.cbWndExtra = 0; 
    WC.hInstance = hInst; 
    WC.hIcon = LoadIcon (hInst, IDMULTIPAD); 
    WC.hCursor = LoadCursor((HANDLE) NULL, IDC_ARROW); 
    WC.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1); 
    WC.lpszMenuName = IDMULTIPAD; 
    WC.lpszClassName = szFrame; 
 
    if (!.RegisterClass (amp; wc)) return FALSE; 
 
    / / Register klasy okien podrzędnych MDI. 
 
    WC.lpfnWndProc = (WNDPROC) MPMDIChildWndProc; 
    WC.hIcon = LoadIcon (hInst, IDNOTE); 
    WC.lpszMenuName = NULL (LPCTSTR); 
    WC.cbWndExtra = CBWNDEXTRA; 
    WC.lpszClassName = szChild; 
 
    if (!.RegisterClass (& wc)) return FALSE; 
 
    Zwraca wartość PRAWDA; 
} 

 

Index