Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 14


Не будет преувеличением сказать, что второе поле структуры WNDCLASS особенно значимо, - в нем хранится указатель на оконную функцию создаваемого в программе класса окон. Эта функция будет производить обработку абсолютно всех сообщений, получаемых окном, другими словами, значение этого поля полностью определяет все поведение окна. В программе это поле инициализируется следую­щим образом:

WndClass.lptiiWndProc - IlelloWorldWndProc;

Два следующих поля оставлены нулевыми. Дело в том, что для каждо­го класса Windows создает где-то в недрах своей памяти структуру с характеристиками класса. Другая структура создается для каждого окна. При создании этих структур может быть зарезервировано некоторое количество памяти для нужд программиста. Поля cbClsExtra и cbWndExtra указывают размер резервируемой памяти в структурах класса и окна соответственно. Эти поля и раньше использовались доста­точно редко, а с появлением Windows'95 и Windows NT будут использо­ваться еще реже.

17

Таблица 3. Перечень битовых флагов

Флаг

Значение

 

Описание

 

 

 

CSJVREDRAW

 

0x000 1

 

Перерисовать окно при изменении высоты

 

 

 

 

 

 

 

окна

 

 

 

CS_HREDRAW

 

0x0002

 

Перерисовать окно при изменении

 

 

 

 

 

 

 

ширины окна

 

 

 

CS KEYCVTWINDOW

 

0x0004

 

 

 

 

 

CS_DBLCLKS

 

0x0008

 

Посылать сообщение оконной функции

 

 

 

 

 

 

 

при двойном щелчке мышью, если курсор

 

 

 

 

 

 

 

находится в пределах окна

 

 

 

CS_OWNDC

 

0x0020

 

Для каждого окна класса выделяется

 

 

 

 

 

 

 

собственный контекст

 

 

 

CS_CLASSDC

 

0x0040

 

Один и тот же контекст устройства

 

 

 

 

 

 

 

разделяется всеми окнами этого класса

 

 

 

CS_PARENTDC

 

0x0080

 

Дочерние окна наследуют контекст

 

 

 

 

 

 

 

родительского окна

 

 

 

CS NOKEYCVT

 

0x0 1 00

 

 

 

 

 

CSJMOCLOSE

 

0x0200

 

Убрать команду «Close» из системного

 

 

 

 

 

 

 

меню

 

 

 

CS_SAVEBITS

 

0x0800

 

Сохранять часть области экрана, закры-

 

 

 

 

 

 

 

тую окном, как bitmap, при удалении

 

 

 

 

 

 

 

восстанавливать перекрытую область

 

 

 

CSJ3YTEALIGNCLIENT

 

Ox 1 000

 

Выравнивает границу рабочей области

 

 

 

 

 

 

 

окна (в горизонтальном направлении)

 

 

 

 

 

 

 

таким образом, чтобы для отображения

 

 

 

 

 

 

 

строки требовалось целое число байтов

 

 

 

CS BYTEALIGNWINDOW

 

0x2000

 

То же, но действие затрагивает все окно

 

 

 

CS_GLOBALCLASS

 

0x4000

 

Разрешается создавать класс, не завися-

 

 

 

 

 

 

 

щий от текущего hlnstancc

 

 

 

CSJME

 

OxOOOIOOOOL

 

 

 

 

 

<


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



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