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;
}