WM_INITDIALOG повідомлення

Система робить не відправити WM_CREATE повідомлення у діалоговому вікні порядку. Замість цього, він посилає повідомлення WM_INITDIALOG , коли він створює діалогове вікно та його елементи керування, але перш ніж він відображається діалогове вікно. Процедура повинна виконувати будь-якого ініціалізувати необхідно переконатися, що у діалоговому вікні відображаються поточні параметри, пов'язані з команди або завдання. Наприклад, коли діалогове вікно містить елемент керування для відображення поточного диска та каталогів, процедура повинна визначити поточний диск і каталогів і установити елемент керування значення.

Процедура може ініціалізувати елементи за допомогою функцій, таких як SetDlgItemText і CheckDlgButton. Оскільки елементи керування windows, процедура також ними можна маніпулювати за допомогою функції керування вікнами, такі як EnableWindow і SetFocus. Процедура може отримати дескриптор вікна елемента керування за допомогою функції GetDlgItem.

Діалоговому вікні порядок можна змінити вміст, стан і позиції будь-якого контролю, необхідні. Наприклад, у діалоговому вікні, яке містить список імен файлів та відкриті кнопки, процедури можна вимкнути кнопку Відкрити поки користувач вибирає файл зі списку. У цьому прикладі діалоговому вікні шаблон визначає стиль WS_DISABLED для кнопки відкрити і система автоматично вимикає кнопки під час його створення. Коли процедура діалоговому вікні отримує сповіщення з поля списку, про те, що користувач має вибрати файл, процедура викликає функцію EnableWindow , щоб дозволити кнопку Відкрити.

Щоб відобразити власний значок на панелі "підпис", у діалоговому вікні, обробника WM_INITDIALOG можна надіслати повідомлення WM_SETICON діалогового вікна.

Якщо застосунок створює діалогове вікно за допомогою однієї з функцій, DialogBoxParam, DialogBoxIndirectParam, CreateDialogParamабо CreateDialogIndirectParam, параметр lParam для WM_INITDIALOG повідомлення містить додатковий параметр, переданий функції. Програми зазвичай цей параметр додаткових перейти за адресою, інформації додаткову строку ініціалізації у діалоговому вікні порядку, але діалоговому вікні процедуру, слід вибрати значення параметра. Якщо застосування використовує іншу функцію, щоб створити діалогове вікно, система вибирається параметр lParam NULL.

Для повернення з WM_INITDIALOG повідомлення, процедура слід визначити, чи його слід встановити фокус вводу для даного елемента керування. Якщо у діалоговому вікні порядок повертає TRUE, система автоматично встановлює фокус вводу до елемента керування, чиї дескриптор вікна є в параметрі wParam . Якщо елемент керування отримувати фокус за замовчуванням не є доцільним, його можна встановити фокус до відповідного елемента керування за допомогою SetFocus функції. Якщо процедура встановлює фокус вводу, вона має повернути значення FALSE, для попередження системи від налаштування за замовчуванням фокус. Контролю, отримання за замовчуванням введення фокус завжди перший елемент керування в шаблон, який є видимим, не вимкнуто, і має WS_TABSTOP стилю. Якщо немає такого контролю існує, система встановлює фокус вводу за промовчанням на перший елемент керування в шаблоні.

Index