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

Содержит атрибуты класса окна, зарегистрированные функцией RegisterClass .

Эта структура была заменена структурой WNDCLASSEX , используемой с функцией RegisterClassEx . Вы по-прежнему можете использовать WNDCLASS и RegisterClass , если не нужно задавать небольшой значок, связанный с классом окна.

Синтаксис

typedef struct tagWNDCLASSA {
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCSTR    lpszMenuName;
  LPCSTR    lpszClassName;
} WNDCLASSA, *PWNDCLASSA, *NPWNDCLASSA, *LPWNDCLASSA;

Члены

style

Тип: UINT

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

lpfnWndProc

Тип: WNDPROC

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

cbClsExtra

Тип: int

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

cbWndExtra

Тип: int

Количество дополнительных байтов, выделяемых после экземпляра окна. Система инициализирует байты нулевым значением. Если приложение использует WNDCLASS для регистрации диалогового окна, созданного с помощью директивы 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 больше максимальной длины, функция RegisterClass завершится ошибкой.

Комментарии

Примечание

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

Требования

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

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

BeginPaint

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

CreateWindow

CreateWindowEx

GetDC

MAKEINTRESOURCE

Другие ресурсы

PAINTSTRUCT

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

RegisterClass

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

WM_PAINT

WNDCLASSEX

Классы окон

Windowproc