Дипломированных специалистов «Информатика и вычислительная техника»



Download 12,06 Mb.
Pdf ko'rish
bet214/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   210   211   212   213   214   215   216   217   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Главная функция
Основная задача главной функции (строки 74-162) оконного Windows-приложе-
ния состоит в правильной инициализации программы и корректном ее заверше-
нии. Правильная инициализация приложения предполагает выполнение ряда пред-
определенных шагов. Обсудим их подробнее.
Регистрация класса окна
Регистрация класса окна выполняется в строках 75-108. Под классом окна пони-
мается совокупность присущих ему характеристик, таких как стиль его границ,
формы
мыши, значков, цвет фона, наличие меню, адрес оконной проце-
дуры, обрабатывающей сообщения этого окна. Класс окна можно впоследствии
использовать для создания окон приложения функцией
Характери-
стики окна описываются с помощью специальной структуры
(или ее рас-
ширенного варианта
в Win32).
В сегменте данных в строке 41 листинга 16.4 определен экземпляр структуры
Первое поле структуры WNDCLASSEX cbSize должно содержать
длину структуры. Команда в строке 80 загружает в это поле соответствующее зна-
чение. В поле style можно определять стиль границ окна и его поведение при пере-
рисовке. Значение стиля является целочисленным и формируется из констант.
Каждая константа означает некоторую предопределенную характеристику. Вклю-
чаемый файл
компилятора VC++ содержит символические названия этих
констант. Эти же константы, но уже в соответствии с требованиями синтаксиса
ассемблера, описаны в файле
В строке 81 листинга 16.4 комбинация
констант CS_HREDRAW и CS_VREDRAW определяет необходимость полной перерисов-
ки окна при изменении его вертикального или горизонтального размера.
В строке 80 в поле
записывается адрес оконной функции. С помощью
этой функции все окна, созданные позднее функцией CreateWindow на основе клас-
са, для которого выполняется регистрация, будут обрабатывать посланные им со-
Поля cbClsExtra и cbWndExtra служат для указания количества байтов, дополни-
тельно резервируемых в структуре класса окна WNDPROC и структуре параметров
окна, которая поддерживается внутри самой системы Windows. Обычно эти поля
инициализированы нулевыми значениями.
Строка 85 формирует в ноле
дескриптор приложения, полученный
ранее функцией
В строках 86-95 в поля
и hCursor загружаются дескрипторы значка и ука-
зателя мыши. После запуска приложения значок будет отображаться на панели
задач Windows и в левом верхнем углу окна приложения, а указатель мыши по-
явится в области окна. Значки и указатели мыши представляют собой ресурсы
и находятся в отдельных файлах. Windows предоставляет в
програм-
миста ряд стандартных изображений указателей мыши и значков. В файле winuser.h
содержатся символические имена констант, обозначающих стандартные указате-
ли мыши и значки. Обратите внимание на первый параметр функций


390 Глава
Создание Windows-приложений на ассемблере
и

Это дескриптор приложения, содержащий базовый адрес ре-
сурса значка или указателя мыши, загруженного в процесс. Если используются их
стандартные изображения, то параметр hlnst равен NULL
Команды в строках 96-99 формируют поле hbrBackground, которое должно со-
держать значение дескриптора кисти.
представляет собой ресурс в виде
шаблона пикселов, которым закрашивается некоторый объект, в данном случае —
фон окна приложения некоторого класса. Для получения такого дескриптора не-
обходимо использовать функцию
В качестве параметра ей переда-
ется имя нужной кисти. В файле
содержатся символические имена кон-
стант, определяющих стандартные кисти.
В строке 101 в поле
записывается указатель на ASCIIZ-строку
с именем меню. Если меню не используется (как в нашем случае), то в поле запи-
сывается значение
Поле
в строке 103 можно рассматривать как альтернативу полю
В него помещается дескриптор значка, который будет связан с данным классом
окна. Если поле hlconSm нулевое, то система будет использовать значок, опреде-
ленный полем hlcon.
И последнее действие при описании класса окна — присвоение данному классу
уникального имени. Это имя описано в виде ASCIIZ-строки в поле
сег-
мента данных, и указатель на него формируется в поле
(строка 102).
После инициализации структуры необходимо зарегистрировать класс окна
в системе. Это действие выполняется в строках 105-108 с помощью функции
RegisterClassExA, которой в качестве параметра передается указатель на структуру
WNDCLASSEX.
Необходимо заметить, что после того как класс окна зарегистрирован, структу-
ра WNDCLASSEX больше не нужна. У вас появляется возможность сэкономить не-
много памяти. Это можно сделать, используя предоставляемый ассемблером тип
данных объединения либо инициализируя поля структуры в стеке с последующим
их выталкиванием. Здесь есть широкое поле для экспериментов. Дерзайте!

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   210   211   212   213   214   215   216   217   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish