- •Лабораторна робота №1 Загальні теоретичні відомості:
- •Питання для самоконтролю:
- •Лабораторна робота №2 Системний реєстр Windows
- •Огляд системного реєстру
- •Скарбниця імен
- •Призначений для користувача модуль
- •Системний блок
- •Загальний модуль
- •Ключі конфігурації
- •Конфігураційні файли win.Ini і system.Ini
- •Питання для самоконтролю:
- •Лабораторная работа №3
- •Основы программирования в операционной системе Windows
- •Вызов функций api
- •Структура окна
- •Принципы построения оконных приложений
- •Структура окна
- •Параметры dwExStyle:
- •Параметры dwStyle :
- •12. Функция ExitProcess :
- •17. Функция BeginPaint:
- •Сообщения, посылаемые списку
- •Вопросы для подготовки к сдаче лабораторной работы.
- •Лабораторная работа №4
- •Язык описания ресурсов
- •Пиктограммы
- •Курсоры
- •Акселераторы
- •Api – функции
- •Вопросы для подготовки к сдаче лабораторной работы.
- •Лабораторная работа №5
- •Типы многозадачности
- •Использование многопоточности в приложениях Delphi
- •Синхронизации потоков
- •Критические секции
- •Пример создания многопоточного приложения в Delphi:
- •Лабораторная работа №6 «Специальные объекты синхронизации»
- •Событие (event)
- •Мьютекс (mutex )
- •Семафор (semaphore)
- •Crytical Sections
Сообщения, посылаемые списку
lb_addstring– добавление строки;
lb_deletestring– удаление строки;
lb_gettext– получение текста выделенного элемента;
lb_getcursel– получение номера выделенного элемента;
lbn_dblclk– проверка на двойное нажатие кнопки мыши;
lb_findstring– поиск строки;
lb_err – ошибка функции SendMessage;
lb_getcount– получение количества элементов в списке.
Вопросы для подготовки к сдаче лабораторной работы.
Что означает термин API?
Понятие окна в операционной системе Windows.
Визуальные элементы управления в операционной системе Windows.
Каким образом вызываются API-функции?
Какая последовательность создания окон в операционной системе Windows.
Что понимается под термином «сообщение»?
Что такое «очередь сообщений» в операционной системе Windows.
Как необходимо проводить обработку сообщений в операционной системе Windows.
Какие API-функции для работы с окнами вы знаете?
Что означает сообщение WM_PAINT?
Лабораторная работа №4
Разработка оконных приложений с использованием ресурсов
В операционной системе Windowsвведено понятие ресурса.Ресурспредставляет собой некий визуальный элемент с заданными свойствами, хранящийся в исполняемом файле отдельно от кода и данных, который может отображаться специальными функциями.
Использование ресурсов дает две вполне определенные выгоды:
Ресурсы загружаются в память лишь при обращении к ним, тем самым достигается экономия памяти.
Свойства ресурсов поддерживаются системой автоматически, не требуя от программиста написания дополнительного кода.
Описание ресурсов хранится отдельно от программы в текстовом файле (rc)и компилируется (res)специальным транслятором ресурсов. В исполняемый файл ресурсы включаются компоновщиком. Транслятором ресурсов в пакетеMASM32 являетсяRC.EXE.
Язык описания ресурсов
В настоящее время существует большое количество редакторов ресурсов.
Перечислим наиболее употребляемые ресурсы:
пиктограммы;
курсоры;
битовая картинка;
строка;
диалоговое окно;
меню;
акселераторы.
Пиктограммы
Могут быть описаны в самом файле ресурсов, либо хранится в отдельном ico-файле. Рассмотрим последний случай. Вот файл ресурсовresu.rc:
#define IDI_ICON1 1
IDI_ICON1 ICON “Cdrom01.ico”
Как видите, файл содержит всего две значимы строки. Одна строка определяет идентификатор пиктограммы, вторая – ассоциирует идентификатор с файлом Cdrom01.ico. Язык ресурсов очень напоминает язык Си. Откомпилируем текстовый файлresu.rc:RC resu.rc. На диске появится объектный файлresu.res. При компоновке укажем этот файл в командной строке:
LINK/subsysem:windowsresu.objresu.res
Для использования данного ресурса в программе, приведем пример. Предположим, что мы хотим установить новую пиктограмму для окна. Вот фрагмент программы, который устанавливает стандартную пиктограмму для главного окна:
PUSH IDI_APPLICATION
PUSH 0
CALL LoadIconA8
MOV [WC.CLSHICON], EAX
А вот фрагмент программы для установки пиктограммы указанной в файле ресурсов:
PUSH 1 ; идентификатор пиктограммы-см. файл resu.rc
PUSH [HINST] ; идентификатор процесса
CALL LoadIconA@8
MOV [WC.CLSHICON], EAX
Структура значка
NotifyIconDataA STRUCT
cbSize DWORD ?;размер структуры
hwnd DWORD ?;дескриптор окна
uID DWORD ?;идентификатор пиктограммы
uFlags DWORD ?;флаги
uCallbackMessage DWORD ?;идентификатор сообщения
hIcon DWORD ?;дескриптор пиктограммы
szTip DWORD ?;сообщение,которое будет
;отображаться
NotifyIconDataA ENDS
