Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Userform ohne überschrift und ohne Löschbutton | Herbers Excel-Forum


Betrifft: Userform ohne überschrift und ohne Löschbutton von: Lutz Petzold
Geschrieben am: 28.11.2009 15:17:21

Hallo,

wie kann ich in einer Userform die blaue "Caption-Leiste" und den "Exit-Button" entfernen, das diese beim Aufruf nicht mit erscheinen?

M.f.G.
Lutz

  

Betrifft: AW: Userform ohne überschrift und ohne Löschbutton von: Jens
Geschrieben am: 28.11.2009 15:41:56

Hallo

'in das Modul der Userform

Option Explicit
Private Declare Function CreateRoundRectRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long, _
ByVal X3 As Long, ByVal Y3 As Long) As Long

Private Declare Function SetWindowRgn Lib "user32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub UserForm_Initialize()
    Me.Width = 350: Me.Height = 350
    Commandbutton1.Left = (Me.Width - Commandbutton1.Width) / 3
    Commandbutton1.Top = Me.Height * 0.6
End Sub

Private Sub UserForm_Activate()
    Dim x As Long, y As Long, n As Long, mWnd As Long
    x = Me.Width
    y = Me.Height
    n = 4
    mWnd = FindWindow(vbNullString, Me.Name)
    SetWindowRgn mWnd, CreateRoundRectRgn(2, 2, x, y, n, n), True
End Sub
Gruß Jens


  

Betrifft: AW: Userform ohne überschrift und ohne Löschbutton von: Nepumuk
Geschrieben am: 28.11.2009 16:11:25

Hallo Jens,

da hast du wohl die falsche Prozedur erwischt. Denn dein Code schneidet bei meinem Userform links und rechts etwas ab. Ohne Titelleiste geht so:

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32.dll" ( _
    ByVal hWnd As Long) As Long
Private 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
Private Declare Function ReleaseCapture Lib "user32.dll" () As Long

Private Const GC_CLASSNAMEMSEXCELFORM = "ThunderDFrame"
Private Const GWL_STYLE = -16&
Private Const WS_CAPTION = &HC00000
Private Const HTCAPTION = 2&
Private Const WM_NCLBUTTONDOWN = &HA1

Private hWndForm As Long

Private Sub UserForm_Activate()
    hWndForm = FindWindow(GC_CLASSNAMEMSEXCELFORM, Me.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 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

Gruß
Nepumuk


  

Betrifft: AW: Userform ohne überschrift und ohne Löschbutton von: Lutz Petzold
Geschrieben am: 28.11.2009 16:19:11

Hallo Jens,

habe den Code in eine Userform eingebunden.
Die blau hinterlegte überschrift wird dabei nicht ausgeblendet.
Habe ich da etwas übersehen?

M.f.G.
Lutz


  

Betrifft: AW: Userform ohne überschrift und ohne Löschbutton von: hary
Geschrieben am: 28.11.2009 19:07:31

Hallo Lutz
teste mal dies.
https://www.herber.de/bbs/user/66250.xls
gruss hary


  

Betrifft: AW: Userform ohne überschrift und ohne Löschbutton von: Lutz Petzold
Geschrieben am: 29.11.2009 10:05:09

Hallo Jens, Nepumuk und Hary,

vielen Dank für Eure Hilfe. (:-)

Lutz


Beiträge aus den Excel-Beispielen zum Thema "Userform ohne überschrift und ohne Löschbutton"