Der nachfolgende Tipp zeigt, wie man aus einem beliebigen Form/Fenster zur Laufzeit ein Child-Formular machen kann, das dann direkt innerhalb des MDI-Formulars angezeigt wird. ' benötigte API-Deklarationen Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Declare Function SetParent Lib "user32" ( _ ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function GetParent Lib "user32" _ Alias "GetParent" ( _ ByVal hwnd As Long) As Long Private Const WS_EX_MDICHILD = &H40& Private Const WS_EX_WINDOWEDGE = &H100& Private Const GWL_EXSTYLE = (-20) Private nOldStyle As Long Private nOldParent As Long ' beliebiges Fenster als Child-Form im MDI-Formular anzeigen Public Sub MakeChild(ByVal hWndChild As Long, ByVal hWndMDI As Long) ' zunächst den Original-Fensterstil und Parent merken nOldStyle = GetWindowLong(hWndChild, GWL_EXSTYLE) nOldParent = GetParent(hWndChild) ' jetzt das Fenster zum ChildForm der MDIForm machen SetParent hWndChild, hWndMDI SetWindowLong hWndChild, GWL_EXSTYLE, WS_EX_MDICHILD Or WS_EX_WINDOWEDGE End Sub Wann immer Sie die Anwendung beenden, sollten Sie das "gekidnappte" Fenster wieder seinem ursprünglichem Eltern-Fenster zurückgeben SetWindowLong hWndChild, GWL_EXSTYLE, nOldStyle SetParent hWndChild, nOldParent Dieser Tipp wurde bereits 14.134 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats ![]() Dieter Otter sevTabStrip: Rechtsklick auf Reiter erkennen Eine Funktion, mit der sich prüfen lässt, auf welchen Tab-Reiter ein Mausklick erfolgte Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |