Після реєстрації її класи вікон, 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.