Манипуляции с окном без заголовка - VB

Узнай цену своей работы

Формулировка задачи:

Имеется окно с

BorderStyle

= 0 - None, Кнопки

MinButton

,

MaxButton

,

RestoreButton

,

CloseButton

Код для свертки окна работает нормально:Private Sub buttMin_Click() '--- IDE.WindowState = 1End Sub а WindowState = 2 распахивает окно на весь экран, закрывая панель задач. предположительно нужен такой код:Private Sub buttMax_Click() buttMax.Visible = False buttRest.Visible = True OldW = IDE.Width OldH = IDE.Height OldL = IDE.Left OldT = IDE.TopSelect Case Расположение_панели_задачCase Сверху: IDE.Move 0, Высота_панели_задач, Screen.Width, Screen.Height - Высота_панели_задачCase Справа: IDE.Move Ширина_панели_задач, 0, Screen.Width - Ширина_панели_задач, Screen.HeightCase Слева: IDE.Move 0, Ширина_панели_задач, Screen.Width - Ширина_панели_задач, Screen.Heightcase Снизу: IDE.Move 0, 0, Screen.Width, Screen.Height - Высота_панели_задачEnd Select Form_ResizeEnd SubPrivate Sub buttRest_Click() buttRest.Visible = False buttMax.Visible = True IDE.Move OldL, OldT, OldW, OldH Form_ResizeEnd Sub Вопрос как определить размеры и положение панели задач?

Решение задачи: «Манипуляции с окном без заголовка»

textual
Листинг программы
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
 
 
Private Sub Form_Load()
Dim Rec As RECT, tWnd As Long
'Найдем ПЗ
    tWnd = FindWindow("Shell_traywnd", vbNullString)
    'Вычислим размеры ПЗ
    GetWindowRect tWnd, Rec
    ' Найдем верхнюю точку
    MsgBox Rec.Top, vbOKOnly, " верхняя точка ПЗ"
End Sub

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы