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

Функции api

1. Функция GetModuleHandleA

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

Если функция не выполнилась, возвращаемое значение - нуль.

2. Функция LoadIcon

В процессе инициализации структуры WNDCLASS используются две функции API для обеспечения связи предопределенных пиктограммы и курсора с создаваемым окном.

Функция LoadIcon возвращает в случае успешного завершения адрес программы обработки пиктограммы.

Парамеры:

- дескриптор модуля, содержащего программу обработки пиктограммы. Этот параметр должен быть нулевым, если будет использоваться стандартная пиктограмма;

- указатель на последовательность символов с нулем на конце, содержащую имя ресурса пиктограммы. Если используется предопределенная пиктограмма, параметр может принимать следующие значения:

IDI_APPLICATION заданная по умолчанию пиктограмма,

IDI_ASTERISK звездочка (используется в информационных сообщениях),

IDI_EXCLAMATION восклицательный знак (используется в предупреждающих сообщениях),

IDI_HAND "рука" (используется в серьезных предупреждающих сообщениях),

IDI_QUESTION вопросительный знак,

IDI_WINLOGO эмблема Windows (только для Windows95).

В случае неудачного завершения функция LoadIcon возвращает нуль.

3. Функция LoadCursor

Функция LoadCursor возвращает в случае успешного завершения дескриптор курсора.

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

Параметры:

- дескриптор модуля, содержащего программу обработки курсора. Этот параметр должен быть нулевым, если будет использоваться предопределенный курсор;

- указатель на последовательность символов с нулем на конце, содержащую имя ресурса курсора. Если используется предопределенный курсор, параметр может принимать следующие значения:

IDC_APPSTARTING Стандартная стрелка и песочные часы

IDC_ARROW Стандартная стрелка

IDC_NO Перечеркнутый круг

IDC_SIZEALL Стрелка с четырьмя указателями

IDC_SIZE Стрелка с четырьмя указателями (только

для Windows NT)

IDC_SIZENESW Двойная стрелка, указывающая северо-восток и юго-запад

IDC_SIZENS Двойная стрелка, указывающая север - юг

IDC_SIZENWSE Двойная стрелка, указывающая северо-запад - юго-восток

IDC_SIZEWE Двойная стрелка, указывающая запад - восток

IDC_UPARROW Вертикальная стрелка

IDC_WAIT Песочные часы

Функция возвращает нуль, если курсор не найден.

4. Функция Register Class

Функция Register Class регистрирует класс окна, атрибуты которого определены в структуре WNDCLASS. В качестве параметра функции передается адрес структуры WNDCLASS, описывающей соответствующее окно. В случае успешного завершения возвращаемое значение не равно нулю, если класс окна не зарегистрирован – нуль. Класс окна регистрируется только один раз – при первом запуске приложения.

5. Функция CreateWindowExA

Функция CreateWindowExA создает окно, имеющее указанный тип и принадлежащее указанному классу.

Далее формальное описание функций для обеспечения компактности Продолжение прил. 3

приведено на языке С. В справочной системе win32sdk прототип функции представлен следующим образом:

HWND CreateWindowEx(

DWORD dwExStyle, // расширенный стиль

LPCTSTR lpClassName, // адрес имени класса окна

LPCTSTR lpWindowName, // адрес названия окна

DWORD dwStyle, // стиль окна

int x, // координаты верхнего

int y, // левого угла окна

int nWidth, // ширина окна

int nHeight, // высота окна

HWND hWndParent, // дескриптор родительского окна

HMENU hMenu, // дескриптор меню

HINSTANCE hInstance, // базовый адрес модуля

LPVOID lpParam // адрес дополнительных данных

);

В программе параметры передаются через стек с учетом соглашения STDCALL, то есть в обратном порядке. Смысл параметров следующий:

lpParam используется при необходимости в качестве указателя на данные, которые впоследствии могли бы использоваться программой;

hInstance – базовый адрес модуля, с которым связано создаваемое окно;

hMenu – дескриптор меню или идентификатор порожденного окна;

hWndParent – дескриптор родительского окна или окна-владельца;

nHeight – начальный размер окна по высоте;

nWidth - начальный размер окна по ширине;

х,у являются координатами левого верхнего угла окна;

dwStyle определяет стиль окна и может принимать следующие значения:

WS_OVERLAPPED – наиболее универсальный тип окна – перекрывающее окно, имеет название и рамку;

WS_ICONICPOPUP – всплывающее окно, первоначально минимизированное;

WS_POPUP – всплывающее окно, чаще всего используется для отображения диалогового окна;

WS_CHILD – порожденное окно;

WS_MINIMIZE - первоначально минимизированное окно;

WS_VISIBLE – окно становится видимым сразу после создания;

WS_DISABLED – создается неактивное окно;

WS_CLIPSIBLINGS – исключает области, занимаемые другими порожденными окнами из изменяемой области данного порожденного окна; если порожденные окна перекрываются, а стиль WS_CLIPSIBLINGS не указан, то при изменении рабочей области одного

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

из порожденных окон могут быть испорчены рабочие области других порожденных окон, используется только со стилем WS_CHILD;

WS_CLIPCHILDREN – исключает области, занимаемые порожденными окнами при изменении рабочей области родительского окна;

WS_MAXIMIZE – окно будет отображено в максимально возможном для него размере;

WS_CAPTION – окно имеет рамку и название (заголовок), может перемещаться по экрану с помощью мыши (включает в себя стиль WS_BORDER);

WS_BORDER – окно имеет широкую рамку без заголовка;

WS_DLGFRAME – окно имеет тонкую рамку без заголовка;

WS_VSCROLL – окно имеет вертикальную линейку прокрутки;

WS_HSCROLL - окно имеет горизонтальную линейку прокрутки;

WS_SYSMENU – окно имеет меню в заголовке окна;

WS_THICKFRAME – окно имеет рамку изменения размеров;

WS_MINIMIZEBOX – окно имеет кнопку минимизации;

WS_MAXIMIZEBOX – окно имеет кнопку максимизации;

lpWindowName – адрес строки, содержащей заголовок окна;

lpClassName – адрес строки, содержащей имя класса;

dwExStyle – определяет расширенный стиль окна, может, например, принимать значение WS_EX_ABSPOSITION, означающее, что окно не двигается, когда рабочая область перемещается.