При размещении формы в определённом месте экрана следует учитывать то, что у разных пользователей панель задач может располагаться не только внизу, но и вверху или сбоку. Часть экрана, которая не занята панелью задач, называется рабочей областью. Размер и расположение рабочей области можно определить с помощью API-функции SystemParametersInfo.
Private Declare Function SystemParametersInfo Lib "user32" _
Alias "SystemParametersInfoA" (ByVal uAction As Long, _
ByVal uParam As Long, ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
В качестве параметра uAction необходимо передать константу:
Private Const SPI_GETWORKAREA = 48&
Также нужно объявить пользовательский тип RECT:
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Все эти объявления нужно разместить в модуле формы в секции General / Declarations.
В процедуру Form_Load добавьте следующий код:
Private Sub Form_Load()
Dim wa As RECT
SystemParametersInfo SPI_GETWORKAREA, 0&, wa, 0&
Me.Left = wa.Right * Screen.TwipsPerPixelX - Me.Width
Me.Top = wa.Bottom * Screen.TwipsPerPixelY - Me.Height
End Sub
Не забудьте свойству формы StartUpPosition присвоить значение vbStartUpManual (0).
Автор - Цзяофань
|