Регистрация  классов дочернего и рамочного окна


Типичное MDI приложение должно регистрировать два класса окна: один для своего рамочного окна и другой для своих дочерних окон. Если приложение поддерживает больше чем один тип документа (например, электронную таблицу и диаграммы), оно должно зарегистрировать класс окна для каждого типа.

Структура класса для рамочного окна аналогична структуре класса для главного окна не-MDI приложения. Структура класса для дочерних окон MDI немного отличается от структуры для дочерних окон не-MDI приложения как  указано ниже:

Пример ниже показывает, как программа Multipad регистрирует классы своего рамочного и  дочернего окна.

Демонстрационный пример

BOOL WINAPI InitializeApplication() 
{ 
    WNDCLASS wc; 
 
    // Регистрация класса рамочного окна. 
 
    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 (&wc) ) 
        return FALSE; 
 
    // Регистрация класса дочернего окна MDI. 
 
    wc.lpfnWndProc   = (WNDPROC) MPMDIChildWndProc; 
    wc.hIcon         = LoadIcon(hInst, IDNOTE); 
    wc.lpszMenuName  = (LPCTSTR) NULL; 
    wc.cbWndExtra    = CBWNDEXTRA; 
    wc.lpszClassName = szChild; 
 
    if (!RegisterClass(&wc)) 
        return FALSE; 
 
    return TRUE; 
} 

Назад в оглавление
На главную страницу

Hosted by uCoz