|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Створення графічного інтерфейсу WindowsНайсуттєвіша відміна програм під Windows від програм, які були написані під інші операційні системи, - це повідомлення. Більшість програм під DOS періодично опитують пристрої вводу, такі, як клавіатура і миша, і таким чином відслідковують стан цих пристроїв. У Windows, це відбувається через так звані повідомлення. По суті, повідомлення – це спосіб взаємодії операційної системи з програмою. За допомогою повідомлень програми отримують необхідну їм інформації щодо подій, які відбуваються в системі. Життєвий цикл віконної програми для ОС Windows складається з початкового створення вікон, ініціалізації необхідних даних, і головного циклу, в якому оброблюються повідомлення, що надходять до вікна програми. Створення графічного інтерфейсу Windows-програми і забезпечення обробки повідомлень є доволі трудомістким. Для спрощення цього процесу існують розроблені різними фірмами бібліотеки класів, які інкапсулюють роботу з компонентами графічного інтерфейсу Windows. Серед цих бібліотек можна виділити MFC (Microsoft Foundation Classes) від Microsoft і VCL (Visual Components Library) від Borland. Розглянемо принцип створення графічного інтерфейсу програми у середовищі MS Visual Studio 2005, використовуючи бібліотеку MFC. Найкращих результатів при використанні цієї бібліотеки можна досягнути, використовуючи технологію Документ/Представлення (Document/View), але для реалізації елементарного інтерфейсу можна обмежитися створенням діалогового вікна. Для створення проекту діалогового вікна у MS Visual Studio 2005 необхідно викликати пункт меню File – New – Project, і у вікні, що з’явилося, обрати Visual C++ - MFC – MFC Application, і ввести ім’я майбутнього проекту. Після цього буде викликано майстер настройки нового проекту. У розділі Application Type слід обрати Dialog Based, також там можна обрати, яким чином використовувати бібліотеку MFC (як загальну DLL або як статичну бібліотеку), і чи треба включати в програму підтримку кодування Unicode. В розділі Unit Interface Features підстроюється вид майбутнього вікна. На цьому попередню настройку можна завершити, натиснувши кнопку Finish. В результаті буде згенеровано: – файли, які містять клас додатку (звичайно носять ім’я проекту), успадкований від класу MFC CWinApp; – файли, які містять клас діалогового вікна (звичайно носять ім’я проекту плюс Dlg), успадкований від класу MFC CDialog; – файли ресурсів Resource; – файли прекомпільованих заголовків stdafx. Навігацію цими файлами можна здійснювати за вікна Solution Explorer (CTRL-ALT-L). Налаштування інтерфейсу діалогового вікна зберігаються у файлі ресурсів. Для створення його дизайну слід перейти до вікна Resource View (CTRL-SHIFT-E) і в розділі Dialog обрати відповідне діалогове вікно. В результаті з’явиться поточний вигляд вікна. Додавати компоненти до нього можна за допомогою панелі компонентів Toolbox (CTRL-ALT-X). Розмістимо на діалоговому вікні компонент Combo Box (поле зі списком). Настроїти його параметри можна, виділивши його за допомогою миші і відкрив панель Properties (F4). На цій панелі розміщується список всіх компонентів, які розміщені на діалоговому вікні. Нижче розміщені кнопки, які дозволяють переключати тип сортування властивостей/подій об’єкта (категорізоване або за алфавітом), а також переключатися між відображенням властивостей і подій. Виставимо у відкритій панелі Properties у розділі Properties властивість Type у значення Drop List. Такий стиль дозволить лише обирати елементи із вже існуючих у списку, без можливості вводити їх у полі для вводу. Додамо до створеного списку функцію, що оброблює подію зміни поточного вибраного елементу списку. Для цього необхідно переключитися на відображення в панелі Properties подій (Control Events), знайти назву події CBN_SELCHANGE і, натиснувши у відповідному до нього полі на стрілку, обрати <Add>. Після цього у класі діалогового вікна з’явиться нова функція-член, в яка буде викликатися при зміні обраного в списку елементу. З більшістю компонентів діалогового вікна можна пов’язувати змінні-члени. Для цього слід викликати контекстне меню відповідного компоненту і обрати пункт Add Variable. У вікні, що з’явилося, проставляється ім’я нової змінної (Variable Name), модифікатор доступу (Access), категорію змінної (якщо треба маніпулювати лише значенням компоненту – обирають категорію Variable, якщо ж необхідно виконувати інші дії над ним – категорію Control). Пов’яжемо створений список зі змінною m_ComboBox категорії Control. В клас діалогового вікна буде додано змінну-член класу CComboBox. Додамо на діалогове вікно компонент Edit Control (поле для редагування). Пов’яжемо його зі змінною m_Edit категорії Value. В клас діалогового вікна буде додано змінну-член класу CString. У функцію-член OnInitDialog класу діалогового вікна додамо код, який ініціалізує поле зі списком: m_ComboBox.AddString(L"Text 1"); m_ComboBox.AddString(L"Text 2"); m_ComboBox.AddString(L"Text 3"); Повернемося до функції, яка оброблює зміну поточного елементу поля зі списком, внесемо туди наступний код: m_ComboBox.GetLBText(m_ComboBox.GetCurSel(), m_Edit); UpdateData(false); Функція-член класу CComboBox GetLBText заносить у змінну m_Edit значення рядку зі списку з номером m_ComboBox.GetCurSel() (поточний обраний елемент). Функція-член класу CDialog UpdateData обновлює дані, пов’язані з компонентами діалогового вікна. При цьому її параметр вказує, в якому напрямку виконувати обновлення – зі змінних до компонентів (false), або навпаки (true). Тепер при зміні елементу поля зі списком новий обраний елемент буде відображатися у полі для редагування. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |