Структура WNDCLASSEXW (winuser.h)

Содержит сведения о классе окна. Он используется с функциями RegisterClassEx и GetClassInfoEx .

Структура WNDCLASSEX аналогична структуре WNDCLASS . Существует две разницы. WNDCLASSEX включает элемент cbSize , который задает размер структуры, и член hIconSm , который содержит дескриптор небольшого значка, связанного с классом окна.

Синтаксис

typedef struct tagWNDCLASSEXW {
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCWSTR   lpszMenuName;
  LPCWSTR   lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXW, *PWNDCLASSEXW, *NPWNDCLASSEXW, *LPWNDCLASSEXW;

Члены

cbSize

Тип: UINT

Размер данной структуры (в байтах). Присвойте этому члену значение sizeof(WNDCLASSEX). Не забудьте задать этот член перед вызовом функции GetClassInfoEx .

style

Тип: UINT

Стили классов. Это может быть любое сочетание стилей классов.

lpfnWndProc

Тип: WNDPROC

Указатель на процедуру окна. Для вызова процедуры окна необходимо использовать функцию CallWindowProc . Дополнительные сведения см. в разделе WindowProc.

cbClsExtra

Тип: int

Количество дополнительных байтов, выделяемых в соответствии со структурой класса окна. Система инициализирует байты нулевым значением.

cbWndExtra

Тип: int

Количество дополнительных байтов, выделяемых после экземпляра окна. Система инициализирует байты нулевым значением. Если приложение использует WNDCLASSEX для регистрации диалогового окна, созданного с помощью директивы CLASS в файле ресурсов, оно должно задать для этого члена значение DLGWINDOWEXTRA.

hInstance

Тип: HINSTANCE

Дескриптор экземпляра , содержащего процедуру окна для класса .

hIcon

Тип: HICON

Дескриптор для значка класса. Этот элемент должен быть дескриптором ресурса значка. Если этот элемент имеет значение NULL, система предоставляет значок по умолчанию.

hCursor

Тип: HCURSOR

Дескриптор курсора класса. Этот элемент должен быть дескриптором для ресурса курсора. Если этот элемент имеет значение NULL, приложение должно явно задавать фигуру курсора при каждом перемещении мыши в окно приложения.

hbrBackground

Тип: HBRUSH

Дескриптор фоновой кисти класса. Этот элемент может быть дескриптором кисти, используемой для рисования фона, или значением цвета. Значение цвета должно быть одним из следующих стандартных системных цветов (значение 1 должно быть добавлено к выбранному цвету). Если задано значение цвета, необходимо преобразовать его в один из следующих типов HBRUSH :

  • COLOR_ACTIVEBORDER
  • COLOR_ACTIVECAPTION
  • COLOR_APPWORKSPACE
  • COLOR_BACKGROUND
  • COLOR_BTNFACE
  • COLOR_BTNSHADOW
  • COLOR_BTNTEXT
  • COLOR_CAPTIONTEXT
  • COLOR_GRAYTEXT
  • COLOR_HIGHLIGHT
  • COLOR_HIGHLIGHTTEXT
  • COLOR_INACTIVEBORDER
  • COLOR_INACTIVECAPTION
  • COLOR_MENU
  • COLOR_MENUTEXT
  • COLOR_SCROLLBAR
  • COLOR_WINDOW
  • COLOR_WINDOWFRAME
  • COLOR_WINDOWTEXT
Система автоматически удаляет фоновые кисти класса при отмене регистрации класса с помощью UnregisterClass. Приложение не должно удалять эти кисти.

Если этот элемент имеет значение NULL, приложение должно рисовать собственный фон всякий раз, когда ему будет предложено зарисовать в своей клиентской области. Чтобы определить, нужно ли закрашивать фон, приложение может обработать сообщение WM_ERASEBKGND или протестировать элемент fErase структуры PAINTSTRUCT , заполненной функцией BeginPaint .

lpszMenuName

Тип: LPCTSTR

Указатель на символьную строку с пустым завершением, указывающую имя ресурса в меню класса, так как имя отображается в файле ресурсов. Если для определения меню используется целое число, используйте макрос MAKEINTRESOURCE . Если этот член имеет значение NULL, окна, принадлежащие этому классу, не имеют меню по умолчанию.

lpszClassName

Тип: LPCTSTR

Указатель на строку, завершаемую null, или является атомом. Если этот параметр является atom, это должен быть атом класса, созданный при предыдущем вызове функции RegisterClass или RegisterClassEx . Атом должен быть в нижнем порядке слово lpszClassName; Слово высокого порядка должно быть равно нулю.

Если lpszClassName является строкой, она указывает имя класса окна. Имя класса может быть любым именем, зарегистрированным с помощью RegisterClass или RegisterClassEx, или любым из предопределенных имен классов элементов управления.

Максимальная длина lpszClassName — 256. Если значение lpszClassName больше максимальной длины, функция RegisterClassEx завершится ошибкой.

hIconSm

Тип: HICON

Дескриптор небольшого значка, связанного с классом окна. Если этот элемент имеет значение NULL, система выполняет поиск значка ресурса, указанного элементом hIcon , на наличие значка соответствующего размера для использования в качестве небольшого значка.

Комментарии

Примечание

Заголовок winuser.h определяет WNDCLASSEX как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть winuser.h (включая Windows.h)

См. также раздел

Основные понятия

GetClassInfoEx

Справочные материалы

RegisterClassEx

Отмена регистрацииClass

Классы окон