ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 10.10.2000

Diese Seite wurde zuletzt aktualisiert am 10.10.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Vordergründige MDI-Childforms

Zurück...


Anzeige

(-hg) mailto:hg_mdichildontop@aboutvb.de

Die in Vordergründige Forms"Vordergründige Forms" beschriebene Möglichkeit, ein Form immer vor allen anderen stehen zu lassen, funktioniert leider nicht innerhalb einer Gruppe von MDI-Childforms. MDI-Childforms sind an sich immer gleichberechtigt. Wenn Sie aber ein paar kleine Mankos in Kauf nehmen, können Sie auf andere Weise ein MDI-Childform vor alle anderen innerhalb eines MDI-Hauptforms stellen.

Bei MDI-Childforms wirkt sich nämlich der in Besitzverhältnisse"Besitzverhältnisse" beschriebene Tipp anders aus - anders als zu erwarten wäre, aber praktisch genau in der Weise, die wir hier benötigen. Wenn Sie einfach der (bereits dort beschriebenen) Hilfsfunktion SetOwner das MDI-Hauptform als Besitzer eines MDI-Childforms (Form-Eigenschaft MDIChild = True) übergeben, verliert es seine Childform-Charakteristik und befindet sich trotzdem als Kindfenster innerhalb des MDI-Hauptforms. Zum einen lässt es sich nicht wie ein MDI-Childform aus dem MDI-Hauptform hinausschieben. Zum anderen wird es nicht mehr beim arrangieren der Childforms einbezogen und taucht auch nicht in einem Windowslist-Menü auf. Sein Bewegungsbereich umfasst die gesamte Arbeitsfläche MDI-Hauptforms und steht auch (das ist eines der kleinen Mankos) vor Toolbars und anderen direkt in das MDI-Hauptform einfügbaren Steuerelementen (PictureBox, Statusbar u.a.).

Ein anderes Manko besteht darin, dass beispielsweise Textfelder (TextBox, ComboBox) bei einem Mausklick nicht mehr den Fokus erhalten und der Text darin nicht mehr mit der Maus markiert werden kann. Die Textfelder feuern zwar noch die Mausereignisse, reagieren aber nicht mehr darauf (Ausnahme: Die Markierung per Doppelklick funktioniert nach wie vor). Während es nur mit unverhältnismäßig hohem Aufwand möglich wäre, die Markierfähigkeit wieder herzustellen, lässt sich der Fokuserhalt bei Mausklick sich ohne große Umstände erreichen:

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _
 X As Single, Y As Single)

  Text1.SetFocus
End Sub

Da ein vor allen MDI-Childforms schwebendes Form vermutlich zumeist als Toolbox eingesetzt werden wird, ist das nicht ganz so tragisch - Buttons, Toolbars und die meisten Steuerelemente funktionieren wie gewohnt. Hier noch einmal die Funktion zum Setzen des Besitzers:

Private Declare Sub SetWindowWord Lib "User32" _
 (ByVal hWnd As Long, ByVal nCmd As Long, ByVal nVal As Long)

Public Sub SetOwner(FormOwned As Form, FormOwner As Form)
  Const SWW_HPARENT = -8

  SetWindowWord FormOwned.hWnd, SWW_HPARENT, FormOwner.hWnd
End Sub

Und der Aufruf könnte etwa so aussehen:

SetOwner frmMDIToolBox, MDIForm1

Modul modSetOwner (modSetOwner.bas - ca. 0,5 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer