Win32Asm Tutorial |
назад | 13- Окна в windows | вперед | ![]() |
12.0 - Окна в windows
В этом уроке мы создадим программу с окном.
12.1 - Окна
Вы наверняка догадываетесь, почему windows так назван. В windows, есть два типа программ: GUI-приложения и консольные приложения. Консольные программы похожи на DOS-программы, они выполняются в поле подобном DOS. Большинство программ, которые вы используете это GUI (graphical user interface) приложения. У них есть графический интерфейс, для взаимодействия с пользователем. Это сделано, созданием окон. Почти все, что вы видите в windows, это окна. Сначала вы создаете родительское окно, а затем его дочерние окна (контролы) такие, как окна редактирования, статические контролы, кнопки и т.д.
12.2 - Классы окон
Каждое окно имеет имя класса. Для вашего родительского окна, вы определяете ваш собственный класс. Для контролов, вы можете использовать стандартные классы окон (такие как 'EDIT', 'STATIC', 'BUTTON').
12.3 - Структуры
Класс окна в вашей программе регистрируется с помощью функции 'RegisterClassEx' (RegisterClassEx это расширенная версия RegisterClass. RegisterClass используется редко). Объявление этой функции:
ATOM RegisterClassEx(
CONST WNDCLASSEX *lpwcx // адрес структуры с данными класса
);
lpwcx: Указатель на структуру WNDCLASSEX. Вы должны заполнить структуру соответствующими классу аттрибутами перед передачей ее функции.
Единственный параметр это указатель на структуру. Сначала некоторые основы относительно структур:
Структура это набор переменных (данных). Структура определяется директивой STRUCT:
SOMESTRUCTURE STRUCT
dword1 dd ?
dword2 dd ?
some_word dw ?
abyte db ?
anotherbyte db ?
SOMESTRUCTURE ENDS
(имя структуры не должно содержать прописных букв)
Вы также можете объявить ваши переменные в секции неинициализированных данных, со знаком вопроса. Теперь вы можете создать структуру из объявления:
Инициализированная
Initializedstructure SOMESTRUCTURE <100,200,10,'A',90h>