Registrere barn og ramme vindusklasser

En typisk MDI-program må registrere to vindusklasser: én for sin ramme-vinduet, og én for dens underordnede vinduer. Hvis et program støtter mer enn én type dokument (for eksempel et regneark og et diagram), må det registrere en vindusklasse for hver type.

Klassestrukturen for vinduet ramme ligner klassestrukturen for hovedvinduet i ikke-MDI-programmer. Klassestrukturen for de underordnede MDI-vinduene varierer litt fra strukturen for underordnede vinduer i ikke-MDI-programmer som følger:

Eksemplet nedenfor viser hvordan Multipad registrerer sin ramme og underordnede vinduet-klasser.

BOOL WINAPI InitializeApplication() {WNDCLASS wc; 
 
    / / Registrere vindusklasse ramme. 
 
    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; 
 
    / / Registrere vindusklasse for MDI-barn. 
 
    WC.lpfnWndProc = (WNDPROC) MPMDIChildWndProc; 
    WC.hIcon = LoadIcon (hInst, IDNOTE); 
    WC.lpszMenuName = (LPCTSTR)-NULL; 
    WC.cbWndExtra = CBWNDEXTRA; 
    WC.lpszClassName = szChild; 
 
    if (!.RegisterClass (& wc)) return FALSE; 
 
    Returner verdien SANN; 
} 

 

Index