_WinAPI_CreateWindowEx
Создает перекрывающееся, всплывающее или дочернее окно
#include <WinAPI.au3>
_WinAPI_CreateWindowEx($iExStyle, $sClass, $sName, $iStyle, $iX, $iY, $iWidth, $iHeight, $hParent [, $hMenu = 0 [, $hInstance = 0 [, $pParam = 0]]])
Параметры
$iExStyle | Расширенный стиль окна |
$sClass |
Зарегистрированное имя класса (Button, Edit, ListBox и т.д.) |
$sName |
Имя окна (текст на кнопке, текст в заголовке) |
$iStyle |
Стиль окна |
$iX |
Координата левого края. |
$iY |
Координата верхнего края. |
$iWidth |
Ширина окна |
$iHeight |
Высота окна |
$hParent |
Дескриптор родительского окна или окна владельца |
$hMenu |
[необязательный] Handle to menu or child-window identifier |
$hInstance |
[необязательный] Handle to application instance |
$pParam |
[необязательный] Pointer to window-creation data |
Возвращаемое значение
Успех: | Возвращает дескриптор нового окна |
Ошибка: | Возвращает 0 |
См. также
_WinAPI_DestroyWindowСм. также
Искать CreateWindowEx в библиотеке MSDNПример
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
$hGui = GUICreate('CreateWindowEx', 230, 60)
Global $hHotkey = _WinAPI_CreateWindowEx(0, "msctls_hotkey32", "", BitOR($WS_CHILD, $WS_VISIBLE, $WS_TABSTOP), 10, 10, 140, 22, $hGui)
Global $hButton = _WinAPI_CreateWindowEx(0, "Button", "Тест", BitOR($WS_CHILD, $WS_VISIBLE, $WS_TABSTOP), 160, 10, 60, 22, $hGui)
$iStatusBar = GUICtrlCreateLabel('Строка состояния', 5, 60 - 20, 300 - 10, 17)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_WinAPI_DestroyWindow($hHotkey)
_WinAPI_DestroyWindow($hButton)
GUIDelete($hGui)
Exit
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
Local $nID = BitAND($wParam, 0x0000FFFF) ; _WinAPI_LoWord
Local $nNotifyCode = BitShift($wParam, 16) ; _WinAPI_HiWord
Switch $lParam
Case $hButton
Switch $nNotifyCode
Case $BN_CLICKED
$iRet = _SendMessage($hHotkey, $WM_USER + 2, 0, 0)
If $iRet Then
GUICtrlSetData($iStatusBar, 'Модификатор = ' & BitShift($iRet, 8) & ', клавиша = ' & BitAND($iRet, 0xFF))
Else
GUICtrlSetData($iStatusBar, 'Нет')
EndIf
_WinAPI_SetFocus($hHotkey)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc