UserForm Anpassen
11.01.2025 20:57:09
Daniel Eberhard
Ich habe im Forum unterstehender Code gefunden. Finde den Code super.
Ich habe einen Button unten rechts positioniert. Wende ich den Code an, so ist der Button nicht mehr ganz unten. Gibt es eine Möglichkeit den Code anzupassen?
Option Explicit
#If VBA7 Then
Public Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Declare PtrSafe Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Public Declare PtrSafe Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Declare PtrSafe Function DrawMenuBar Lib "user32.dll" ( _
ByVal hWnd As Long) As Long
Public Declare PtrSafe Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByRef lParam As Any) As Long
Public Declare PtrSafe Function ReleaseCapture Lib "user32.dll" () As Long
#Else
Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib "user32.dll" ( _
ByVal hWnd As Long) As Long
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByRef lParam As Any) As Long
Public Declare Function ReleaseCapture Lib "user32.dll" () As Long
#End If
Public Const GC_CLASSNAMEMSEXCELFORM = "ThunderDFrame"
Public Const GWL_STYLE = -16&
Public Const WS_CAPTION = &HC00000
Public Const HTCAPTION = 2&
Public Const WM_NCLBUTTONDOWN = &HA1
Public hWndForm As Long
Sub Titelleiste_weg(ObjForm As Object)
hWndForm = FindWindow(GC_CLASSNAMEMSEXCELFORM, ObjForm.Caption)
If hWndForm > 0 Then
Call SetWindowLong(hWndForm, GWL_STYLE, GetWindowLong(hWndForm, _
GWL_STYLE) And Not WS_CAPTION)
Call DrawMenuBar(hWndForm)
End If
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Call Titelleiste_weg(Me)
End Sub
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
Call ReleaseCapture
Call SendMessage(hWndForm, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub
Besten Dank für Eure Unterstützung.
Freundliche Grüsse
Daniel Eberhard
Anzeige