Ви можете налаштувати Explorer стиль Відкрити або Зберегти як діалоговому вікні шляхом надання гачок процедуру, шаблон або обидва. Якщо ви надасте гачок процедура діалогове вікно провідника стиль, система створює діалоговому вікні, що дитина "у діалоговому вікні" за замовчуванням ". Гачок процедура діє як процедура діалогове вікно "у діалоговому вікні" дитина ". Ця дитина діалоговому вікні базується настроюваний шаблон або шаблон за промовчанням якщо ніхто не надається. Докладніше перегляньте Explorer-стиль настроюються шаблони.
Щоб дозволити гачок процедуру для Explorer стиль Відкрити або Зберегти як діалоговому вікні, використовувати OPENFILENAME структури, під час створення діалогового вікна. Встановити позначки OFN_ENABLEHOOK і OFN_EXPLORER в прапори член і вкажіть адресу процедури OFNHookProc гачок у lpfnHook член. Якщо ви надати гачок процедури і пропустити OFN_EXPLORER прапор, ви повинні використовувати процедуру OFNHookProcOldStyle гачок, і ви отримаєте старого стилю інтерфейсу користувача. Докладніше перегляньте Налаштування старого стилю діалогових вікон.
Процедуру гачок Explorer стиль отримує різні повідомлення, поки відкрито діалогове вікно. До них відносяться такі:
Крім того, існує набір повідомлення, що ви можете відправити діалогове вікно провідника стиль для отримання інформації або для контролю поведінки й оформлення діалогового вікна.
Якщо ви надасте гачок процедура діалогове вікно провідника стиль, за промовчанням діалоговому вікні процедура створює діалогове вікно дитина, коли процедури за замовчуванням діалогове вікно обробляє його WM_INITDIALOG повідомлення. Гачок процедура діє як процедура діалогове вікно "у діалоговому вікні" дитина ". В цей час процедура гачок отримує свій власний WM_INITDIALOG повідомлення з lParam параметр встановлена як OPENFILENAME структури, що використовується для ініціалізації діалогового вікна. Після дитини діалогове вікно завершення обробки власну WM_INITDIALOG повідомлення, за замовчуванням діалогове вікно процедура рухається стандартних елементів керування, якщо необхідно, щоб звільнити місце для будь-яких додаткових елементів керування діалогового вікна дитини. За замовчуванням діалогове вікно процедура надсилає повідомлення про CDN_INITDONE гачок порядку.
Процедура гачок отримує WM_NOTIFY сповіщень із зазначенням дії користувача в діалоговому вікні. Ви можете використовувати деякі з цих повідомлень для керування поведінкою діалогового вікна. Наприклад, гачок процедура отримує CDN_FILEOK повідомлення, коли користувач вибирає ім'я файлу та натискання кнопки ОК . У відповідь на це повідомлення процедура гачок функція SetWindowLong ім'я вибраного відхилити і змусити діалоговому вікні залишатися відкритим.
Параметр lParam для кожного WM_NOTIFY повідомлення — це вказівник на OFNOTIFY структури, що визначає дії. Код члена в заголовку для OFNOTIFY структури містить один з таких кодів сповіщень.
CDN_FILEOK | Користувач натиснув кнопку ОК ; діалогове вікно збирається закрити. |
CDN_FOLDERCHANGE | Користувач відкрив нову папку або каталог. |
CDN_HELP | Користувач натиснув кнопку Довідка. |
CDN_INITDONE | Система завершила ініціалізації діалогового вікна, а діалогове вікно завершення обробки повідомлення WM_INITDIALOG . Крім того, система завершила впорядкування елементів керування в діалоговому вікні загальноприйнята щоб звільнити місце для елементів керування діалогового вікна дитини (за наявності). |
CDN_SELCHANGE | Користувач вибрано новий файл або папку зі списку файлів. |
CDN_SHAREVIOLATION | Загальні діалогового виявила порушення прав доступу до файлу буде повернуто. |
CDN_TYPECHANGE | Користувач вибрано новий тип файлу у списку типів файлів. |
Ці повідомлення WM_NOTIFY замінюють FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGі HELPMSGSTRING зареєстрованих повідомлень попередніх версій діалогових вікнах Відкрити та Зберегти як . Однак, гачок процедури також отримує superseded повідомлення після WM_NOTIFY повідомлення якщо WM_NOTIFY обробки не використовується SetWindowLong встановити ненульове значення DWL_MSGRESULT.
Для отримання інформації про стан діалогового вікна або для контролю поведінки й оформлення діалогового вікна, гачок процедуру можна надіслати такі повідомлення діалогового вікна.
CDM_GETFILEPATH | Повертає шлях та ім'я файлу, вибраного файлу. |
CDM_GETFOLDERIDLIST | Повертає елемент ідентифікатор списку відповідає поточній папці, що діалогове вікно має відкрити. Щоб отримати додаткові відомості про списки ідентифікатор елемента, перегляньте елемент ідентифікатори та ідентифікатор списки. |
CDM_GETFOLDERPATH | Повертає шлях поточної папки або каталогу для діалогового вікна. |
CDM_GETSPEC | Отримує ім'я файлу (включаючи шлях) файлу вибрано в діалоговому вікні. |
CDM_HIDECONTROL | Приховання вказаного елемента керування. |
CDM_SETCONTROLTEXT | Задає текст вказаного елемента керування. |
CDM_SETDEFEXT | Встановлює за промовчанням ім'я файлу розширення для діалогового вікна. |