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



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

Создание окна
После того как класс окна описан и зарегистрирован в системе, приложение на его
основе может создать множество различных окон. Создание окна (строки
выполняется функцией Win32 API
Для этого ей нужно передать
множество параметров. Назначение их мы рассмотрим далее. В качестве результа-
та функция возвращает уникальный дескриптор окна hWnd, который необходимо
сохранить (строки
У читателя, видимо, возникает вопрос, почему для создания окна необходимы
два шага: сначала определение класса окна, а лишь затем непосредственно его соз-
дание. Даже если не рассматривать этот вопрос в контексте концепции объектно-
ориентированного программирования,
процесс создания окна очень
удобен для практической работы. В качестве наглядного примера приведем кноп-
ки редактора MS Word. На самом
это маленькие окна, созданные
базе одного
класса. Они используют одну оконную функцию, которая обрабатывает сообще-
ния, посланные этим окнам. Какой именно кнопке послано сообщение, оконная


Каркасное Windows-приложение на ассемблере
функция определяет по полю hwnd в структуре сообщения (см. далее). Наличие
одного класса для всех кнопок гарантирует их одинаковое поведение. В то же вре-
мя, каждая из кнопок может отличаться внешним видом. Но это уже дополнитель-
ные свойства конкретного
которые задаются при создании экземп-
ляра окна параметрами функции CreateWindowEx.
Рассмотрим на примере Windows-приложения (см. листинг 16.4) задание зна-
чений параметров функции CreateWindowEx (строки
Строка 113. Параметр
используется при создании окна для передачи
данных или указателя на них в оконную функцию. Делается это следующим обра-
зом. Все параметры, передаваемые функции
сохраняются в созда-
ваемой Windows внутренней структуре
Поля этой структуры иден-
тичны параметрам функции CreateWindowEx. Указатель на структуру CREATESTRUCT
передается оконной функции при обработке сообщения WM_CREATE. Сам указатель
находится в поле
сообщения. Значение параметра IpParam функции Create-
WindowEx находится в поле
структуры CREATESTRUCT.
Строка
Параметр
— дескриптор приложения, создающего окно.
Строка
Параметр
— дескриптор главного меню окна. Так как в дан-
ном варианте Windows-приложения меню у окна отсутствует, то параметр hMenu
имеет нулевое значение.
Строка 116. Параметр
дескриптор родительского окна. Между
двумя окнами Windows-приложения можно устанавливать родовые отношения.
Дочернее окно всегда должно появляться в области родительского окна. Так как
у нас подобных отношений нет, то значение передаваемого параметра нулевое.
Строки 117-120. Параметры, загружаемые в стек этими строками, задают на-
чальные координаты и размеры окна приложения на экране. Константа CW_USE-
DEFAULT
определенная в файле winuser.h, позволяет «попросить» Win-
dows использовать значения этих параметров по умолчанию.
Строка 121. Параметр dwStyle определяет стиль окна приложения. Значение
этого параметра задается константой или комбинацией констант. Символические
имена этих констант описаны во включаемом файле winuser.h (Visual C++ 6.0).
В нашем приложении используется значение
(OOOOOOOOh),
которое задает стиль обычного перекрывающегося окна с
имеющего сис-
темное меню, кнопки свертывания, развертывания и закрытия окна в правом верх-
нем
Строки 122 и 123. Параметры szTitleName и
— их значения являются
указателями на ASCIIZ-строки (строки 44-45) с именем класса окна и текстом,
помещаемым в заголовок окна.
Строка 124. Параметр dwExStyle позволяет задать дополнительные стили окна.
В Win32 API существует две реализации функции создания окна: стандартная
и расширенная
Для их вызова используются оди-
наковые параметры, за исключением последнего — dwExStyle. При использовании
функции CreateWindowA параметр в стек помещать не требуется, при использова-
нии CreateWindowExA параметр dwExStyle должен быть помещен в стек последним.
Дополнительные стили можно задействовать вместе со стилями, задаваемыми па-
раметром dwStyle.


392 Глава
Создание Windows-приложений на ассемблере
Строка 125. Вызов функции
В качестве результата функция
возвращает дескриптор окна
Он имеет уникальное значение и является од-
ним из важнейших описателей объектов приложения. Он передается как параметр
многим функциям Win32 API и как значение полей в некоторых структурах. Од-
новременно в приложении может быть создано и совместно существовать несколько
окон, поэтому с помощью дескриптора hWnd Windows однозначно идентифициру-
ет то окно, для работы с которым вызывается та или иная функция Win32 API.
Другой важный результат работы функции CreateWindowExA — посылка асинхрон-
ного сообщения WM_CREATE в оконную функцию приложения. В нашей программе
обработка этого сообщения заключается в вызове функции
которая
воспроизводит звуковой файл. Более подробно о сообщениях и их обработке пого-
ворим далее.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   211   212   213   214   215   216   217   218   ...   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