
- •Теоретичні положення
- •1.1 Створення ресурсів методом ручної компіляції
- •1.2 Детальний опис наведеного прикладу.
- •1.2.1 Меню
- •1.2.2. Приєднання ресурсу типу файл.
- •1.2.3. Діалогові вікна
- •2. Програмні засоби для створення ресурсних даних
- •2.1 Програма ResEd.Exe
- •2.1.1. Діалогове вікно.
- •2.1.1.1 Створення діалогового вікна
- •2.1.1.2 Редагування значення стилю вікна.
- •2.1.2. Приєднуємо малюнок.
- •2.1.3. Створення меню
- •2.1.3.1 Додання до проекту меню
- •2.1.3.2 Опис кнопок і полів
- •2.1.3.3 Приклад створення меню.
- •2.2 Програма radAsm.Exe
- •2.2.1. Створення проекту з ресурсами
- •2.2.2. Файли проекту
- •Додання меню.
- •Додання файлових ресурсів.
- •Робота з ресурсами за допомогою winapi функцій
- •3.1. Завантаження ресурсів у пам‘ять.
- •Завантаження графічних зображень.
- •Робота з меню
- •3.4 Перебирання записів ресурсу.
- •Діалогові вікна.
- •Алгоритм створення діалогового вікна за допомогою ra
- •Функції роботи з діалоговим вікном
- •Структура програми при використанні діалогових вікон
- •Контрольні питання
- •Завдання:
Структура програми при використанні діалогових вікон
Порівняно з 4 лабораторною, код програми дещо змінився. По-перше, ми в 4 лабораторній створювали окремо кожне вікно, в діалогових вікнах вікно створюється і записується у ресурсі та викликається за допомогою функції DialogBoxParam. По-друге функція обробки повідомлень також має інший вигляд.
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
mov eax,uMsg
.if eax==WM_INITDIALOG
.elseif eax==WM_COMMAND
.if wParam == 1001
invoke MessageBox,0,0,0,MB_OK
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
Хоча у вас появилися нові типи, як HWND, це ті самі DWORD але перевизначені в новий тип. Це діло програміста. Всі параметри є DWORD.
WM_INITDIALOG – грає роль WM_CREATE у 4 лабораторній.
Як згадувалося вище, контроли відрізняються ідентифікаторами.
.if wParam == 1001
invoke MessageBox,0,0,0,MB_OK
.endif
Цей код перевіряє, чи натиснута кнопка, що має ідентифікатор 1001 і виводить повідомлення.
Контрольні питання
Які бувають ресурси в програмах ?
Як описуються ресурси кожного типу ?
Яким чином можна перерахувати всі ресурси програми ?
Де знаходяться ресурси підчас виконання програми ?
Які функції відповідають за завантаження у пам'ять графічних зображень ?
Завдання:
В ресурсні дані занести 10 об‘єктів. Написати програму яка виявляє всі ресурси, та заносить у вікно списку.
В ресурсні дані занести 20 об‘єктів різного типу. Написати програму яка виявляє всі ресурси, та заносить у вікно дерева. Вузли дерева мають характеризувати типи ресурсу.
Занести у ресурс 4 малюнка, 2 іконки, 2 ехе файли. Створити меню, з двома пунктами. 1 включає “анімацію”, тобто циклічно виводить у статичне вікно 4 малюнки що 300 мілісек. 2 кнопка, зберігає файли та запускає іх.
У ресурс занести анімаційні курсори та звичайні. Пару іконок. Зробити змогу вибирати через меню яким курсором працювати у вікні. То саме реалізувати для іконок. До меню додати пункт About при виконанні якого має відритися нове вікно і надписом хто робив і вікном відтворення анімаційного відео.
Реалізувати анімаційну іконку, тобто в таймері циклічно міняти іконку вікна. Створити “повзунок” TrackBar, для регуляції швидкості зміни іконки. Розмістити кнопку на вікні, реакція якої буде вибір шляху до папки. Результат (шлях) записати у створене вікно.
Завантажити 3 іконок і 2 курсора. Реалізувати програму з використанням TabStip з 3 закладками. При переході на іншу закладку треба змінити іконку. Кожна закладка мусить мати інше віконне наповнення. При на веденні мишкою на текстове поле встановлюється 1 курсор, на кнопку 2-й. При руханні по іншому полі вікна курсор стандартний.
Реалізувати програму з музичним супроводом. В ресурс занести 20 об‘єктів різного типу. Створити ListView. У режимі таблиця, вивести всі ресурси програми. Обов‘язкові поля, номер запису, назва, тип.
Реалізувати програму текстовий редактор з використанням ToolBar. Іконки завантажити у ресурс.
Реалізувати програму з “простим”та "випадаючим" меню. За допомогою створених меню та власного додаткового(их) вікна(он) реалізувати зміну властивостей вікна. Зокрема, колір фону, вибір мови меню, зміни курсору та іконок.
Реалізувати програму "інсталятор". Програма має мати, що найменше 4 переходи, в котрих обов‘язковим має бути 1, ознайомлення з авторськими правами, 2. вибір директорії куди буде інстальована програма, 3. полоса інсталяції.
Написати програму для редакції власних ресурсів. Вивести список ресурсів, та за допомогою власного інтерфейсу, реалізувати можливості додавання, знищення та редагування запису (ресурсу).
Знести 10-15 об’єктів у ресурс. Реалізувати програму з TabStip. Створити N закладок, де N - кількість типів. У кожній закладці створити listbox в котрій вивести список ресурсів певного типу.
Занести 10 іконок у ресурси. Реалізувати інтерфейс вибору іконки та висвітлення її на екрані. За допомогою кнопки (або меню), замітити у всіх вікнах верхнього рівня іконку на вибрану з власного ресурсу.
Реалізувати програму з музичним супроводом. В ресурс занести 20 об‘єктів різного типу. Реалізувати програму з TabStip. Створити N закладок, де N - кількість типів. У кожній закладці створити ListView в котрій вивести список ресурсів певного типу.
Реалізувати програму з музичним супроводом. Музику можна міняти за допомогою меню. Реалізувати редакцію властивостей (колір, фону, іконки, курсор) через меню. Додати анімацію.