Пример регистрации класса окон

Для регистрации класса окон удобно использовать функцию следующего вида:

int RegClass(WNDPROC Proc, LPCTSTR szName)

{

WNDCLASS wc;

wc.style = CS_HREDRAW | CS_VREDRAW;

wc.cbClsExtra = wc.cbWndExtra = 0;

wc.lpfnWndProc = Proc;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor(NULL, IDC_ARROW);

wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);

wc.lpszMenuName = (LPCTSTR)NULL;

wc.lpszClassName = szName;

return RegisterClass(&wc);

}

Формальными параметрами этой функции являются указатели на функцию окна и строку с именем класса. Имя, список формальных параметров и тип возврата функции могут быть любыми другими. Главное, чтобы приложению после регистрации были доступны имя зарегистрированного класса, а операционной системе – функция окна этого класса. Поясним некоторые операторы этой функции.

Не используются дополнительные данные:

wc.cbClsExtra = wc.cbWndExtra = 0;

Поле hInstance содержит дескриптор текущего приложения:

wc.hInstance = hInstance;

Функция RegisterClass регистрирует класс в операционной системе. Ее аргументом является адрес подготовленной структуры wc. При успешной регистрации класса она возвращает ненулевое значение, иначе – нуль. Оператор возврата функции RegClass:

return RegisterClass(&wc);

в случае успешной регистрации класса возвращает ненулевое значение, иначе – нуль.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: