Visual C++ MFC в подробностях
Страница 42. Структура WNDCLASS


Структура WNDCLASS

Эта структура содержит атрибуты класса окна. Вот её описание

typedef struct tagWNDCLASS { 
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASS;

При создании класса окна эту структуру использует функция Register Class. Итак, описание параметров.

style определяет стиль класса. Стили можно объединять используя | (OR). Вот какие они бывают:

  • CS_BYTEALIGNCLIENT - (по горизонтали) выравнивание рабочей области окна по границе байта. Влияет на ширину окна и его горизонтальное положение на экране.
  • CS_BYTEALIGNWINDOW - (по вертикали) выравниает окна по границе байта.
  • CS_CLASSDC - контекст устройства, который будет разделяться всеми окнами класса. При нескольких потоках операционная система разрешит доступ только одному потоку.
  • CS_DBLCLKS - посылать сообщение от мыши при двойном щелчке в пределах класса окна.
  • CS_GLOBALCLASS - Создавать глобальный класс, который можно поместить в динамическую библиотеку DLL
  • CS_HREDRAW - перерисовывать всё окно при изменении ширины.
  • CS_NOCLOSE - отключить команду Закрыть
  • CS_OWNDC - у каждого окна уникальный контекст устройства.
  • CS_PARENTDC - У дочернего окна будет область отсечки от родительского. Повышает производительность.
  • CS_SAVEBITS - Позволяет сохранять область экрана в виде битовой матрицы закрытую в данный момент другим окном, используется для восстановления экрана.
  • CS_VREDRAW - перерисовывать окно при изменении вертикальных размеров

WNDPROC указатель на процедуру окна вызываемую функцией CallWindowProc.
cbClsExtra объем памяти выделяемый за структурой класса.
cbWndExtra объем дополнительной памяти за экземпляром окна.
hInstance дескриптор экземпляра.
hIcon дескриптор эконы окна
hCursor дескриптор курсора окна
hbrBackground дескриптор для закраски фона.
lpszMenuName имя меню в ресурсах
lpszClassName имя класса.

 

 
« Предыдущая статья   Следующая статья »