Создание экземпляра оконного класса

После того как класс окна определен и зарегистрирован, приложение может создавать окна этого класса с использованием функции API CreateWindow().

HWND CreateWindow(LPCTSTR lpClassName,// имя класса окна LPCTSTR lpWindowName,// заголовок окна DWORD dwStyle,// стиль окна int x,// горизонтальная позиция окна int y,// вертикальная позиция окна int nWidth,// ширина окна int nHeight,// высота окна HWND hWndParent,// дескриптор родительского окна HMENU hMenu,// дескриптор главного меню HINSTANCE hInstance,// дескриптор приложения, создающего окно LPVOID lpParam // указатель на дополнительную информацию );

Функция возвращает дескриптор созданного окна либо NULL, если создать окно не удалось.

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

Динамические изменения свойств оконного класса

Дополнительная память в структуре класса окна

При регистрации класса окна вы можете в поле cbClsExtra структуры WNDCLASS указать размер дополнительной области памяти, которая будет зарезервирована в структуре данных, описывающей класс окна. В эту область можно записать данные, предназначенные для использования всеми окнами, создаваемыми на базе класса.

Для работы с этой дополнительной памятью предназначены функции SetClassLong, GetClassLong.

Функция SetClassLong заменяет указанное 32-разрядное (long) значение при заданном смещении в дополнительной памяти класса или в структуре WNDCLASSEX на класс, которому указанное окно принадлежит.

Обратите внимание! на то, что эта функция была заменена функцией SetClassLongPtr. Чтобы написать код, который является совместимым и с 32-разрядными, и с 64-разрядными версиями Microsoft ® Windows ®, используйте SetClassLongPtr.

Синтаксис

DWORD SetClassLong( HWND hWnd, int nIndex, LONG dwNewLong );

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



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