Anzeige
Archiv - Navigation
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Makro Fenster Kopf + Größe
01.08.2005 21:41:08
SteffenS
Hallo und guten Abend,
ich habe von Hans CD folgenden Code um die Titelleiste eines Fensters auszublenden:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 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 FensterRegion&, Region&
Private Hauptfensternummer&, Clientfensternummer&
Private dummy As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const GW_CHILD = 5
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Sub FensterOhneKopf()
Dim Abmessung As RECT
Dim Abmessung1 As RECT
Dim Pos1x&, Pos1y&, Pos2x&, Pos2y&
If FensterRegion 0 Then Exit Sub
HMenu.BorderStyle = fmBorderStyleSingle
Call Fensternummer(HMenu, Abmessung, Abmessung1)
Pos1x = 0
Pos1y = (Abmessung1.Top - Abmessung.Top)
Pos2x = Abmessung.Right - Abmessung.Left
Pos2y = Abmessung.Bottom - Abmessung.Top
Region = CreateRectRgn(Pos1x, Pos1y, Pos2x, Pos2y)
FensterRegion = SetWindowRgn(Hauptfensternummer, Region, True)
End Sub
'Fensterhandles und Infos über Fenster holen

Private Sub Fensternummer(Form As Object, Abmessung As RECT, Abmessung1 As RECT)
Dim Fenstername$, Suchstring$
Suchstring = "Planung 2006"
Fenstername = Form.Caption
Form.Caption = Suchstring
Hauptfensternummer = FindWindow(vbNullString, Suchstring)
Form.Caption = Fenstername
Clientfensternummer = GetWindow(Hauptfensternummer, GW_CHILD)
dummy = GetWindowRect(Hauptfensternummer, Abmessung)
dummy = GetWindowRect(Clientfensternummer, Abmessung1)
End Sub

'Folgendes ist notwendig, um die Form ohne Titelleiste zu verschieben

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
If Button = 1 Then
If Hauptfensternummer <> 0 Then
dummy = ReleaseCapture()
dummy = SendMessage(Hauptfensternummer, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
Else
Unload HMenu ' Zum schließen, beim ausprobieren.
End If
End Sub


Private Sub UserForm_Initialize()
'Titelzeile ausblenden
Call FensterOhneKopf
End Sub

Dieser funktioniert auch super.
Ich möchte nun über eine Schaltfläche in der Userform die Größe ändern.
Leider passiert sobald ich den Code:
HMEnu.width=636
ausführe nichts.
Kommentiere ich die Zeile "Call FensterOhneKopf" aus, funktioniert die Größenänderung
Was muss ich tun das ich die Größe per Code ändern kann.
Danke im Voraus
MFG
Steffen Schmerler

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
bei mir auch unter XP/2003 (oT)
01.08.2005 22:27:35
Luschi
bei mir gehts nicht und zwar...
02.08.2005 17:22:54
SteffenS
habe ich deinem Beispiel einfach mal die UF im VBA Modus kleiner gemacht und dann läßt sich die UF über die Schaltfläche nicht mehr verändern.
Vielleicht könntet Ihr mir nochmal helfen?
Danke
Steffen
AW: bei mir gehts nicht und zwar...
02.08.2005 17:25:56
Matthias
Hallo Steffen,
im VBA-Modus? Was meinst du?
Es geht jedenfalls auch so:

Private Sub UserForm_Initialize()
'Titelzeile ausblenden
Call FensterOhneKopf
Me.Width = 200
End Sub

Gruß Matthias
Anzeige
Hab die Lösung....
02.08.2005 18:59:44
SteffenS
und zwar muss die Angabe der Größe nach
'Titelzeile ausblenden
Call FensterOhneKopf
stehen dann klappts.
Danke
Steffen

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige