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 для получения кода ошибки).
' Смотри также примеры 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