Створення кадру та дитина Windows

Після реєстрації її класи вікон, MDI програми можна створити її windows. По-перше, вона створює його вікно кадр за допомогою функції CreateWindow або CreateWindowEx . Після створення вікна її кадру, застосунок створює його вікно клієнт знову за допомогою CreateWindow або CreateWindowEx. Застосування повинні вказати MDICLIENT як ім'я класу вікна клієнта; MDICLIENT — preregistered вікно клас визначений у системі. Параметр lpvParam CreateWindow або CreateWindowEx повинен вказувати CLIENTCREATESTRUCT структури. Ця структура містить членів, описані в цій таблиці:

Член Опис
hWindowMenu Обробляти до меню вікно використовується для керування MDI дитини windows. Як дитина windows створюються, додаток додає їх назви в меню вікно як елементи меню. Користувач може потім активувати дочірнього вікна натисніть її заголовок меню вікно.
idFirstChild Визначає ідентифікатор вікна MDI дитини. Перший вікна MDI дитини створений призначається цей ідентифікатор. Додаткові вікна створюються з ідентифікаторами incremented вікно. Коли знищені дочірнього вікна, система відразу ж перепризначає ідентифікатори вікна, щоб тримати їх діапазон суміжних.

Коли заголовок вікна дитини додається до меню вікна , система призначає ідентифікатор дочірнього вікна. Коли користувач натискає на заголовок вікна дитини, у вікно кадр отримує WM_COMMAND повідомлення з ідентифікатором в параметрі wParam . Ви повинні вказати значення для членів idFirstChild , які не суперечать ідентифікатори елемент меню в меню вікно кадр.

Multipad в рамки вікна процедура створює вікна MDI клієнт під час обробки повідомлення WM_CREATE . Наведений нижче приклад показує, як вікна клієнту створюється.

справа WM_CRE&ATE: {CLIENTCREATESTRUCT ccs; 
 
        / / Отримати ручку, щоб у меню вікно і призначити в / / перший ідентифікатор вікна дитини. 
 
        CCS.hWindowMenu = GetSubMenu(GetMenu(hwnd), WINDOWMENU); 
        CCS.idFirstChild = IDM_WINDOWCHILD; 
 
        / / Створення вікна MDI клієнта. 
 
        hwndMDIClient = CreateWindow ("MDICLIENT", (LPCTSTR) значення NULL, WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, 0, 0, 0, 0, hwnd, (HMENU) 0xCAC, hInst, (LPSTR) amp; ccs); 
 
        ShowWindow (hwndMDIClient, SW_SHOW); 
    } перерву 

 

Дисків Windows дитини додаються в нижній частині меню вікна . Якщо програма додає рядки меню вікно за допомогою функції AppendMenu , ці рядки можуть бути перезаписані на дисків windows дитини коли меню вікно repainted, (коли створюється або знищується дочірнього вікна). MDI програма, яка додає рядки меню вікно повинна використовувати функцію InsertMenu і переконайтеся, що дисків windows дитини є не перезаписуються, ці нові рядки.

Створення вікна MDI клієнт для запобігання вікна живопису над його дитиною windows за допомогою стилю WS_CLIPCHILDREN.

Index