Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр_на_ассембл_для_WINLOWS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
908 Кб
Скачать
☆

9. Функция DispatchMessage

Функция DispatchMessage передает сообщение оконной процедуре. Обычно используется для передачи сообщения, считанного из очереди сообщений функцией GetMessage.

В качестве параметра функции передается адрес структуры, которая содержит сообщение.

Возвpащаемое значение определяется оконной процедурой, обычно игноpиpуется.

Продолжение прил. 3

10. Функция ExitProcess

Прототип:

VOID ExitProcess(

UINT uExitCode // код завершения процесса

);

Параметр uExitCode определяет код завершения для процесса и для всех потоков, которые завершаются в результате этого обращения.

Эта функция не возвращает никакого значения.

11. Функция BeginPaint

Функция BeginPaint готовит окно к перерисовке и заполняет структуру PAINTSTRUCT.

Прототип:

HDC BeginPaint(

HWND hwnd, // дескриптор окна

LPPAINTSTRUCT lpPaint // указатель на структуру PAINTSTRUCT

);

Параметр hwnd – дескриптор окна, которое будет перерисовываться, lpPaint - адрес соответствующей структуры PAINTSTRUCT.

Функция возвращает дескриптор контекста устройства (DC), в случае неудачного завершения – нуль.

12. Функция TextOutA

Функция TextOutA выводит последовательность символов в определенное место рабочей области окна текущим шрифтом.

Прототип:

BOOL TextOut(

HDC hdc, // дескриптор контекста устройства

int nXStart, // x-координата началаизображения

int nYStart, // y- координата началаизображения

LPCTSTR lpString, // указатель на строку

int cbString // число символов в строке

);

Продолжение прил. 3

Параметр hdc определяет контекст устройства, nXStart и nYStart – координаты начала текста, lpString – адрес последовательности символов, cbString – количество выводимых символов.

13. Функция EndPaint

Функция EndPaint определяет конец перерисовки данного окна. Вызов этой функции требуется после каждого обращения к функции BeginPaint.

Прототип:

BOOL EndPaint(

HWND hWnd, // дескриптор окна

CONST PAINTSTRUCT lpPaint // указатель на структуру //PAINTSTRUCT

);

Параметр hWnd определяет перерисованное окно, lpPaint – указывает на структуру PAINTSTRUCT, содержащую информацию об области обновления данного окна.

Эта функция всегда возвращает значение TRUE.

Приложение 4

Описание структур, определенных в фале win32.Inc

1. Структура wndclass

Структура WNDCLASS является основой объекта "Окно". Во включаемом файле (в наших примерах - win32.inc) эта структура представлена следующим образом:

WNDCLASS struc

ClsStyle UINT ? ;стиль класса

ClsLpfnWndProc ULONG ? ;адрес оконной процедуры

ClsCbClsExtra UINT ?

ClsCbWndExtra UINT ?

ClsHInstance UINT ? ;дескриптор модуля

ClsHIcon UINT ? ;дескритор модуля,

;содержащего пикто-

;грамму

ClsHCursor UINT ? ;дескриптор модуля

;курсора

ClsHbrBackground UINT ? ;дескриптор модуля

;кисти

ClsLpszMenuName ULONG ? ;адрес имени меню

ClsLpszClassName ULONG ? ;адрес имени класса

;окна

WNDCLASS ends

Типы данных UINT, ULONG соответствуют типу CARDINAL и представляют собой целое положительное 32-разрядное число. В файле win32.inc UINT и ULONG описаны как синонимы директивы DD.

Поле ClsStyle определяет стиль класса и в нашем случае является комбинацией следующих значений, объединяемых операцией ИЛИ:

CS_HREDRAW – выводится повторно все окно в случае его перемещения или изменения ширины;

CS_VREDRAM – выводится повторно все окно, если оно перемещалось или изменялась высота;

CS_GLOBALCLASS – позволяет прикладной программе создавать окно класса независимо от значения параметра hInstance, переданного функции CreateWindow или CreateWindowEx. Если этот стиль не определен, параметр hInstance, переданный функции CreateWindow или CreateWindowEx, должен соответствовать параметру, переданному функции RegisterClass.

Поле ClsLpfnWndProc должно содержать адрес оконной процедуры.

Поле ClsCbClsExtra определяет дополнительное число байтов для структуры класса окна, которые система резервирует в служебной памяти для всех окон этого класса. При создании каждого нового окна Windows создает и заполняет собственную структуру класса окна для каждого созданного окна.

Продолжение прил. 4

Поле ClsCbWndExtra задает в байтах объем памяти, резервируемой системой в конце каждой такой структуры каждого окна данного класса. Если прикладная программа использует структуру WNDCLASS для регистрации диалогового окна, созданного директивой CLASS в файле ресурсов, ClsCbWndExtra должна содержать значение DLGWINDOWEXTRA.

Поле ClsHInstance содержит базовый адрес данного EXE-файла, полученный с помощью функции GetModuleHandle.

Поля ClsHIcon, ClsHCursor и ClsHbrBackground определяют пиктограмму, курсор и фон окна соответственно.

Поле ClsLpszMenuName указывает на строку, содержащую имя меню окна, если оно есть.

Поле ClsLpszClassName указывает на строку, содержащую имя класса окна.