(СоздатьОкноУлучшенное)
Функция CreateWindowEx создает перекрывающее, выпрыгивающее или дочернее окно с расширенным стилем; иначе, эта функция идентична функции CreateWindow. Для получения дополнительной информации о создании окна и для полного описания других параметров CreateWindowEx, см. статью CreateWindow.
Синтаксис
HWND CreateWindowEx ( DWORD dwExStyle, // улучшенный стиль окна LPCTSTR lpClassName, // указатель на зарегистрированное имя класса LPCTSTR lpWindowName, // указатель на имя окна DWORD dwStyle, // стиль окна int x, // горизонтальная позиция окна int y, // вертикальная позиция окна int nWidth, // ширина окна int nHeight, // высота окна HWND hWndParent, // дескриптор родительского или окна // собственника HMENU hMenu, // дескриптор меню или идентификатор // дочернего окна HINSTANCE hInstance, // дескриптор экземпляра прикладной // программы LPVOID lpParam // указатель на данные создания окна );
Параметры
dwExStyle
Определяет расширенный стиль окна. Этот параметр может быть одно из следующих значений:
Использование стиля WS_EX_RIGHT для статического или редактируемого элементов управления имеет тот же самый эффект как и использование стиля SS_RIGHT или ES_RIGHT, соответственно. Использование этого стиля с командными кнопками имеет тот же самый эффект как и использование стилей BS_RIGHT и BS_RIGHTBUTTON.
lpClassName
Указывает на строку с нулевым символом в конце или на целочисленный атом. Если lpClassName - атом, он должен быть глобальным атомом, созданным предыдущим вызовом функции GlobalAddAtom. Атом, 16-разрядное значение меньше чем 0xC000, должно быть младшим словом в lpClassName; старшее слово должно быть нулевое. Если lpClassName - строка, она определяет имя класса окна. Имя класса может быть любое имя, зарегистрированное функцией RegisterClass или любым из предопределенных имен класса элементов управления.
lpWindowName
Указывает на строку с нулевым символом в конце, которая определяет имя окна.
dwStyle
Определяет стиль создаваемого окна. Что касается остального списка стилей окна, которые могут быть определены в dwStyle, см. CreateWindow.
x
Определяет начальную горизонтальную позицию окна. Для перекрывающего или выскакивающего окна параметр x - начальная x-координата левого верхнего угла окна, в экранных координатах устройства. Для дочернего окна x - x-координата левого верхнего угла окна относительно левого верхнего угла рабочей области родительского окна. Если x установлен как CW_USEDEFAULT, Windows выбирает заданную по умолчанию позицию для левого верхнего угла окна и игнорирует y параметр. Стиль CW_USEDEFAULT допустим только для перекрывающих окон; если он определен для всплывающего или дочернего окна параметры x и y устанавливаются в нуль.
y
Определяет начальную вертикальную позицию окна. Для перекрывающего или выскакивающего окна, параметр y - начальная y-координата левого верхнего угла окна, в экранных координатах устройства. Для дочернего окна, y - начальная y-координата левого верхнего угла дочернего окна относительно левого верхнего угла рабочей области родительского окна. Для окна со списком, y - начальная y-координата левого верхнего угла рабочей области окна со списком относительно левого верхнего угла рабочей области родительского окна. Если перекрывающее окно создано в стиле WS_VISIBLE с набором битов, а параметр x установлен как CW_USEDEFAULT, Windows игнорирует параметр y.
nWidth
Определяет ширину окна в единицах измерения устройства. Для перекрывающих окон nWidth - ширина окна в экранной системе координат или CW_USEDEFAULT. Если nWidth - CW_USEDEFAULT, Windows выбирает заданную по умолчанию ширину и высоту для окна; заданная по умолчанию ширина простирается от начальных x-координат до правого края экрана; заданная по умолчанию высота простирается от начальной y-координаты до верхней части области значка. Стиль CW_USEDEFAULT допустим только для перекрывающих окон; если CW_USEDEFAULT определен для выскакивающего или дочернего окна, параметры nWidth и nHeight устанавливаются в нуль.
nHeight
Определяет высоту окна в единицах измерения устройства. Для перекрывающих окон, nHeight - высота окна в экранной системе координат. Если параметр nWidth установлен как CW_USEDEFAULT, Windows игнорирует nHeight.
hWndParent
Идентифицирует родительское окно или владельца создаваемого окна. Допустимый дескриптор окна должен быть дан, когда дочернее окно или находящееся в собственности окно созданы. Дочернее окно ограничено рабочей областью родительского окна. Находящееся в собственности окно - перекрывающее окно, которое разрушается, когда окно его владельца разрушено или скрыто, когда его владелец свернут; оно всегда отображается на верхней части окна его владельца. Несмотря на то, что этот параметр должен определять правильный дескриптор, если параметр dwStyle включает в себя стиль WS_CHILD, это необязательно, если dwStyle включает в себя стиль WS_POPUP.
hMenu
Идентифицирует меню или, в зависимости от стиля окна, определяет идентификатор дочернего окна. Для перекрывающего или выскакивающего окна, hMenu идентифицирует меню, которое будет использоваться окном; этот параметр может быть значением ПУСТО (NULL), если меню класса будет использовано. Для дочернего окна, hMenu определяет идентификатор дочернего окна, целочисленное значение, используемое элементом управления диалогового окна, что-бы сообщать родителю о событиях. Прикладная программа определяет идентификатор дочернего окна; он должно быть уникальным для всех дочерних окон того же самого родительского окна.
hInstance
Идентифицирует экземпляр модуля, который будет связан с окном.
lpParam
Указывает на значение, переданное окну через структуру CREATESTRUCT, вызванную параметром lParam сообщения WM_CREATE. Если прикладная программа вызвала CreateWindow, чтобы создать пользовательское окно многодокументной среды, lpParam должен указывать на структуру CLIENTCREATESTRUCT.
Возвращаемые значения
Если функция успешно завершила работу, возвращаемое значение - дескриптор для созданного окна. Если функция потерпела неудачу, возвращаемое значение - ПУСТО (NULL).
Замечания Функция CreateWindowEx посылает создаваемому окну сообщения WM_NCCREATE, WM_NCCALCSIZE и WM_CREATE. За информацией о классах элементов управления окна, стилях окна и стилях элементов управления, используемых с этой функцией, обращайтесь к описанию функции CreateWindow. Windows 95: система может поддерживать максимум 16,364 дескрипторов окна.
Смотри также CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindow, GlobalAddAtom, RegisterClass, SetWindowPos, WM_CREATE, WM_NCCALCSIZE, WM_NCCREATE, WM_PAINT, WM_PARENTNOTIFY
Размещение и совместимость CreateWindowEx:
Windows NT Да Win95 Да Win32s Да Импортируемая библиотека user32.lib Заголовочный файл winuser.h Unicode WinNT Замечания по платформе hMenu ограничено размером в (СЛОВО) WORD в Win32s