Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_6_asm.doc
Скачиваний:
4
Добавлен:
13.11.2019
Размер:
845.82 Кб
Скачать

3.4 Перебирання записів ресурсу.

Іноді стоїть задача знайти певний ресурс, тільки по його імені, типу або мовному кодуванню. Такий об‘єм інформації є замалим для функції FindResource. В такому випадки можна використати функції перебору(перерахування) елементів ресурсу. Перерахуємо їх.

EnumResourceLanguages

EnumResourceNames

EnumResourceTypes

Розглянемо синтаксис однієї з трьох функції.

EnumResourceTypes

hModule // модуль програми

lpEnumFunc, // вказівник на функ. обробки (callback function), тип EnumResTypeProc

lParam // параметр який передасться в функ. обробки як додатковий параметр

Приклад оголошення EnumResTypeProc в асемблері.

EnumResTypeProc proc hModule, lpszType, lParam :DWORD

Код програми………..

or eax,1

ret

EnumResTypeProc endp

hModule – хендл модуля меню що знайти

lpszType – вказівник на стрічку що містить назву "типу" знайденого ресурсу.

lParam – параметр який ми передали у функ. обробки . Див. EnumResourceTypes.

Функція буде продовжувати шукати, якщо функція обробки буде повертати TRUE (eax > 0). Тому ми пишемо or eax,1.

Рашта функції працюють по аналогії, але мають інші вхідні дані та інший вигляд функ. обробки.

    1. Діалогові вікна.

      1. Алгоритм створення діалогового вікна за допомогою ra

Для створення проекту з діалоговим вікном потрібно виконати наступні дії.

  1. Запустити RadAsm.exe

  2. Вибрати проект “Win32 App” та заповнити поля імені проекту та його опис та натиснути кнопку “Next”. Мал.15а.

а) б)

Мал .15 Створення прокту.

  1. Вибрати шаблон програми “DialogApp.tpl”. Натиснути кнопку “Next”. Мал.15б.

  2. На наступних 2-ох вікнах не зупиняємось, так як вони налаштовані по-замовчуванню і їх редагувати немає потреби. Так що, у них просто натискаємо “Next”.

  3. У правій частині вікна RA тепер не 2 файли а 4. Мал. 16а

a)

Мал..16 Вікна RA

1. Файл коду

2. Файл змінних, констант структур і модулів

3. Файл діалог. В ньому можна редагувати діалог.

4. Файл ресурсу. Туди записується скрипт ресурсу, див. початок.

  1. Для того щоб перейти у режим редагування діалогового вікна потрібно двічі кацнути по назві діалогового файлу. В нашому прикладі це файл “tmp_1.dlg” п.3 на мал 16а. Вікно редакції діалогу мал. 16б.

Опис редакції діалогу описаний вище.

  1. Зробіть ваше попереднє завдання для 4 лабораторної з використанням діалогів.

      1. Функції роботи з діалоговим вікном

Дочірні вікна (далі контроли), діалогового вікна практично нічим не відрізняються від звичайних вікон, створених функцією CreateWindowEx, окрім цього, що початково ви не отримуєте їхнього хендл . Замість цього ви маєте його ідентифікатор (Див мал.4 червона мамка поле ID). Дякуючи цьому значенню ви можете розрізняти вікна. Але як можна, наприклад, відправити повідомлення контролу маючи його ID. Цю проблему можна вирішити 2 способами. 1. SendDlgItemMessage 2. Визначити хендл вікна за допомогою функції GetDlgItem а потім працювати з вікном так само як в 4 лабораторній.

Переглянути наступні функції.

EndDialog

GetDlgCtrlID

GetDlgItem

GetDlgItemInt

GetDlgItemText

GetNextDlgGroupItem

GetNextDlgTabItem

IsDialogMessage

MapDialogRect

SendDlgItemMessage

SetDlgItemInt

SetDlgItemText

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]