Шаблони для стилю Провідника
Шаблони для стилю Провідника
Щоб визначити додаткові органи управління для діалогового вікнаВідкрити (Open)абоЗберегти як (Save As)у стиліПровідника, використовуйте структуруOPENFILENAME, щоб встановити шаблон для дочірнього діалогового вікна, яке містить додаткові засоби управління. Якщо ваш шаблон дочірнього блоку діалогу - ресурс у прикладній програмі або бібліотеці, що динамічно підключається, встановіть прапорецьOFN_ENABLETEMPLATEу членіFlagsі використовуйте члени структуриhInstanceтаlpTemplateName, щоб ідентифікувати ім'я ресурсу та модуль. Якщо шаблон вже в пам'яті, встановіть прапорецьOFN_ENABLETEMPLATEHANDLEі використовуйте член структуриhInstance, щоб ідентифікувати об'єкт пам'яті, який містить шаблон. Коли дочірній блок діалогу для діалогового вікна в стиліПровідниказабезпечується шаблоном, ви повинні також встановити прапорецьOFN_EXPLORER; інакше, система сприйме це, ніби ви задаєте шаблон заміни для діалогового вікна старого стилю. Зазвичай, якщо ви надавайте додаткові засоби управління, то повинні також передбачити іфільтр - процедуру для стилю Провідника, щоб обробляти повідомлення нових органів управління.
Ви можете створити свій шаблон дочірнього діалогового вікна також, як ви робите будь-який інший шаблон, за винятком того, що ви повинні визначити стиліWS_CHILDтаWS_CLIPSIBLINGS, і ще повинні визначити стиліDS_3DLOOKтаDS_CONTROL. Система вимагає стилюWS_CHILD, тому що ваш шаблон визначає дочірній блок діалогуВідкрити (Open)абоЗберегти як (Save As)за замовчуванням. СтильWS_CLIPSIBLINGSгарантує, що дочірнєдіалогове вікно не перемальовує будь-який з органів управління в заданому діалоговому вікні. СтильDS_3DLOOKперевіряє, щоб зовнішній вигляд органів керування у дочірньому діалоговому вікні не суперечив органам керування у заданому за замовчуванням діалоговому вікні. СтильDS_CONTROLпідтверджує, що користувач може використовувати клавішуTABта інші клавіші навігації по вікну, щоб пересуватися між усіма органами керування, створеними за замовчуванням або користувальницькими, у діалоговому вікні, що підтримується.
Щоб створити місце для нових засобів керування, система збільшує задане за замовчуванням діалогове вікно до габаритів користувача діалогового вікна. За замовчуванням, всі органи керування користувача діалогового вікна встановлюютьсянижчеорганів управління в заданому за замовчуванням діалоговому вікні. Однак, ви можете скасувати цю задану за умовчанням позицію за допомогою включення статичного текстового органу управління у шаблоні користувача діалогового вікна і визначити значення його ідентифікатора якstc32. (Це значення визначено в заголовному файліDlg.h.) У цьому випадку система використовує орган управління як точку відліку для визначення, де встановити нові органи управління. Всі нові засоби управлінняstc32встановлюються вище та зліва від елементів управління у тій самій кількості, вище та зліва від засобів управління у заданому за замовчуванням діалоговому вікні. Нові засоби керування нижче та праворуч від елемента керуванняstc32встановлюються нижче та праворуч від заданих за умовчанням засобів керування. Взагалі, кожен новий елемент управління встановлюється так, щоб він мав ту саму позицію щодо заданих за умовчанням коштівуправління таку ж, яку він мав би як елемент управлінняstc32. Щоб створити місце для цих нових засобів керування, система додає простір ліворуч, праворуч, у нижній і верхній частині заданого за замовчуванням діалогового вікна, скільки необхідно.
Система вимагає, щоб фільтр - процедура обробляла всі повідомлення, призначені для користувача діалогового вікна і, отже, посилала ті самі повідомлення вікна фільтр - процедурі щодо будь-якої іншої процедури діалогового вікна. Наприклад, фільтр - процедура приймає повідомленняWM_COMMAND, коли користувач клацає по кнопці органу управління в діалоговому вікні. Фільтр - процедура відповідальна за ініціалізацію цих засобів управління та отримання значень для них, коли діалогове вікно закрито.
Зверніть увагу!на те, що коли фільтр - процедура приймає повідомленняWM_INITDIALOG, система ще не перемістила органи управління в їхнє кінцеве розташування.
Задана за замовчуванням процедура діалогового вікна обробляє повідомлення для всіх органів управління в заданому за замовчуванням діалоговому вікні, але фільтр - процедура приймає повідомленняWM_NOTIFYдля дій користувача цими органами управління як описано в статтіФільтр - процедури для діалогових вікон у стилі Провідника.