Eine Userform
muss nicht immer zentriert auf dem Bildschirm erscheinen,
einige API-Aufrufe helfen uns dabei die Position selbst
festzulegen:
'Bildschirmaufl�sung
Private Declare Function GetSystemMetrics Lib _
"user32" (ByVal nIndex As Long) As Long
Private Const SM_CYSCREEN As Long = 1
Private Const SM_CXSCREEN As Long = 0
'Position
Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd _
As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal bRepaint As Long) As Long
'Starten einer Userform im Vollbildmodus
Private Sub UserForm_Activate()
BildschirmBreite = GetSystemMetrics(SM_CXSCREEN)
BildschirmH�he = GetSystemMetrics(SM_CYSCREEN)
wHandle = FindWindow(vbNullString, Me.Caption)
MoveWindow wHandle, 0, 0, BildschirmBreite, BildschirmH�he, 1
End Sub
Ein weiteres Beispiel, starten der Userform in der rechten oberen
Bildschirmecke mit einer Breite von 350 und einer H�he von 450 Pixel:
'Rechte obere Ecke des Bildschirms, 350x450 Pixel gro�
Private Sub UserForm_Activate()
BildschirmBreite = GetSystemMetrics(SM_CXSCREEN)
BildschirmH�he = GetSystemMetrics(SM_CYSCREEN)
UserformBreite = 350
UserformH�he = 450
wHandle = FindWindow(vbNullString, Me.Caption)
MoveWindow wHandle, BildschirmBreite - UserformBreite, _
0, UserformBreite, UserformH�he, 1
End Sub
|