розділ 3
Розділ 3. Вікна діалогу Windows, реєстр Windows
Модальні і немодальні вікна діалогу
Вікно діалогу це спеціальний вид вікна, призначений зазвичай для взаємодії користувача з елементами управління, розташованими всередині діалогів. Вікна діалогів бувають модальними (modal) і немодального (modeless). (Modal). Модальні діалогові вікна не дають користувачеві можливість перенести фокус введення на інше вікно в тому ж програмному потоці. Тобто при відкритому модальному діалозі повідомлення не надходять в цикл обробки повідомлень головного вікна. У разі немодального діалогу, повідомлення надходять в цикл обробки повідомлень головного вікна програми і повинні бути перенаправлені в вікно діалогу.
На відміну від модальних діалогових вікон, немодальні створюються за допомогою функції CreateDialog. Закрити немодального діалогове вікно можна за допомогою функції DestroyWindow, бажано при цьому обнулити також дескриптор вікна діалогу. При створенні ресурсу немодального вікна діалогу потрібно вказувати стиль шаблону діалогу WS_VISEBLE, інакше діалогове вікно не буде видимим, і потрібно буде викликати функцію ShowWindow, щоб його показати.
Діалогові вікна загального користування
Для стандартизації діалогів відкриття і збереження файлів, пошуку і заміни тексту, друку, вибору квітів і шрифтів можуть використовувати спеціальні функції Windows, розташовані в динамічній бібліотеці - COMDLG32.dLL: GetOpenFileName, GetSaveFileName, FindText, ReplaceText, PrintDlg, ChooseColor, ChooseFont. Для використання цих функцій в першу чергу необхідно проинициализировать поля відповідної структури і передати функції покажчики на цю структуру. Функції створюють і відображають вікно діалогу. Коли користувач закриває вікно діалогу, то у відповідному полі структури міститиметься його вибір.
Робота з реєстром Windows
Реєстр Windows являє собою ієрархічну базу даних, в верху якої розташовані п'ять головних ключів: HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS. В кожному головному ключі в свою чергу можуть знаходитися ключі. Ключі можуть містити інші ключі і дані. Дані мають ім'я і значення. Подивитися вміст реєстру можна, набравши в командному рядку Windows regedit.
Щоб записати або вважати дані в ключ реєстру цей ключ повинен бути спочатку відкритий викликом функції RegCreateKeyEx або RegOpenKeyEx. Записати дані до реєстру можна функцією RegSetValueEx, а вважати функцією RegQueryValueEx. Після закінчення роботи з ключем, його треба закрити функцією RegCloseKey.
Завдання 3. Додати в програму, розроблену в завдання 2 пункт меню, що викликає діалогову панель і перенести в цю панель управління вибором і установкою властивостей діаграми. Додати можливість збереження налаштувань в реєстрі і зчитування з нього. Передбачити можливість закриття діалогу. Використовувати стандартні діалоги для вибору шрифтів, файлів, квітів, якщо в завданні явно не обговорений інший спосіб.
Мета: вивчення взаємодії з вікнами діалогу Windows, отримання навичок роботи з реєстром.
Варіанти завдання 3