Win32asm обучение


Урок 13 - Окна в windows - часть 6


LPVOID lpParam // указатель на данные создания окна.
);

dwExStyle и dwStyle это два параметра, которые определяют стиль окна.
lpClassName это указатель на ваше зарегистрированное имя класса.
lpWindowName это имя вашего окна (оно будет в заголовке вашего окна)
x, y, nWidth, nHeight определяют позицию и размер вашего окна.
hWndParent это хэндл окна, которому принадлежит новое окно. Может быть нулевым, если нет родительского окна.
hMenu это хэндл меню окна.
hInstance это хэндл программного модуля, создающего окно.
lpParam дополнительное значение, которое вы можете использовать в своей программе.

.data

AppName "FirstWindow",0

.code

INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
CW_USEDEFAULT,400,300,NULL,NULL,\
hInst,NULL
mov hwnd, eax
invoke ShowWindow, hwnd, SW_SHOWNORMAL
invoke UpdateWindow, hwnd

(Обратите внимание, что символ '\' говорит ассемблеру, что следующая строка, это продолжение текущей строки.)

Наш код создаст новое окно, с нашим именем класса, которое мы только что зарегистрировали. Заголовок будет "FirstWindow" (AppName), стиль - WS_OVERLAPPEDWINDOW, который создает перекрытое окно с заголовком, системным меню, с изменяемым размером и кнопками свернуть/развернуть. CW_USEDEFAULT как x и y позиция, установит окну заданные по умолчанию позиции для новых окон. Размер окна - 400x300 пикселей.

Возвращаемое значение функции это хэндл окна, HWND, который сохраняется в локальной переменной hwnd. Затем окно выводится на экран функцией ShowWindow. Функция UpdateWindow гарантирует, что окно будет выведено.

12.6 - Цикл сообщений

Windows может связываться с вашей программой и другими онами, используя сообщения. Оконная процедура (см. ниже в этом уроке) вызывается всякий раз, когда для определенного окна ожидается сообщение. Каждое окно имеет цикл сообщений. Это бесконечный цикл, который проверяет есть ли сообщение для вашего окна, и если есть, то передает сообщение функции dispatchmessage. Эта функция вызовет вашу оконную процедуру. Цикл сообщений и оконная процедура это две разные вещи!!!




- Начало -  - Назад -  - Вперед -



Книжный магазин