Функция CreateWindowEx

Declare Function CreateWindowEx Lib "user32.dll" Alias "CreateWindowExA" ( _
    ByVal dwExStyle As Long, _
	ByVal lpClassName As String, _
	ByVal lpWindowName As String, _
	ByVal dwStyle As Long, _
	ByVal x As Long, _
	ByVal y As Long, _
	ByVal nWidth As Long, _
	ByVal nHeight As Long, _
	ByVal hWndParent As Long, _
	ByVal hMenu As Long, _
	ByVal hInstance As Long, _
	lpParam As Any) As Long

CreateWindowEx создает новое окно. Создаваемое окно может быть перекрывающим, дочерним окном с расширенным стилем, всплывающим окном.

Возвращаемое значение

В успешном случае функция возвращает описатель нового созданного окна. В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки).

Параметры

dwExStyle
Комбинация расширенных стилей окна
lpClassName
Имя класса создаваемого окна. Данный класс должен быть зарегистрирован при помощи RegisterClassEx, InitCommonControlsEx, либо используются стандартные системные классы
lpWindowName
Строка, определяющая имя создаваемого окна. Для некоторых окон, эта строка появится в заголовке окна
dwStyle
Комбинация стилей окна
x
Координата x верхнего левого угла нового окна. Если создаваемое окно является дочерним, то эта координата является относительной по одношению к родительскому окну, в остальных случаях - относительно экрана. Если используется CW_USEDEFAULT (только для overlapped), то координаты x и y игнорируются и окно располагается в позиции по умолчанию
y
Координата y верхнего левого угла нового окна. Аналогична параметру x
nWidth
Ширина окна. Если используется CW_USEDEFAULT (только для overlapped), то nWidth и nHeight игнорируются и используются размеры по умолчанию
nHeight
Высота окна. Аналогична nWidth
hWndParent
Описатель родительского окна. Если создаваемое окно не имеет родительского окна, то установите в 0. Используйте HWND_MESSAGE для создания окон-сообщений
hMenu
Описатель меню для нового окна. Если окно не имеет меню, то установите в 0
hInstance
Описатель экземпляра модуля или программы, которому принадлежит окно
lParam
Дополнительное значение, связанное с окном

Пример

' Смотри также примеры apiform.zip и tooltips.zip

' Заменяем кнопку Пуск на свою
' при запуске проекта и уничтожаем
' новую кнопку при выходе
Dim tWnd As Long, bWnd As Long, ncWnd As Long
Private Sub Form_Load()
    Dim R As RECT
' получаем описатель панели задач
    tWnd = FindWindow("Shell_TrayWnd", vbNullString)
' получаем описатель кнопки Пуск
    bWnd = FindWindowEx(tWnd, ByVal 0&, "BUTTON", vbNullString)
' получаем координаты кнопки
    GetWindowRect bWnd, R
' создаем новую кнопку
    ncWnd = CreateWindowEx(ByVal 0&, "BUTTON", "Basic", WS_CHILD, 0, 0, R.Right - R.Left, R.Bottom - R.Top, tWnd, ByVal 0&, App.hInstance, ByVal 0&)
    ShowWindow ncWnd, SW_NORMAL
' прячем кнопку Пуск
    ShowWindow bWnd, SW_HIDE
End Sub
Private Sub Form_Unload(Cancel As Integer)
' показываем кнопку Пуск
    ShowWindow bWnd, SW_NORMAL
' уничтожаем нашу кнопку
    DestroyWindow ncWnd
End Sub

Смотри также

RegisterClassEx

Категория

Окна