vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Form Handling - MDI - kein MDI 
Autor: Blackbox
Datum: 31.08.16 17:43

Hallo Sebbi,

das Verhalten ist bekannt. Du kannst innerhalb einer MDI-Sitzung nur einen MDI-Frame haben und dieser Frame bestimmt das Verhalten aller Fenster der Anwendung. Um der MDI-Frame diese "Allmächtigkeit" etwas abzumildern und auch Child-Windows ein Eigenleben zu gestatten muss das Frame-Window einen Style: MDIS_ALLCHILDSTYLES haben. Damit ist gesagt, dass die MDI-Frame alle Windows, nicht nur die Childs, beeinträchtigt die als Parent den MDI-Frame haben. Die VB-MDI-Application steht
im Verdacht alles an die eigentliche MDI-Client-Klasse weiterzureichen.

Const MDIS_ALLCHILDSTYLES As Long = &H1

Diesen Style kannst Du mit der API SetWindowsLong() beim Start der Anwendung hinzufügen. Dann sollte dein Vorhaben klappen.

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 GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
	 ByVal hwnd As Long, _ 
	 ByVal nIndex As Long) As Long
 
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _ 
	 ByVal hWnd1 As Long, _ 
	 ByVal hWnd2 As Long, _ 
	 ByVal lpsz1 As String, _ 
	 ByVal lpsz2 As String) As Long
 
 
Private Const MDIS_ALLCHILDSTYLES As Long = &H1
Private Const GWL_STYLE As Long = -16
Private g_OldStyle As Long
Private MDI-FRAMEhWnd As Long
 
MDI-FRAMEhWnd = FindWindowEx(DeinMIDI.hWnd, 0, "MDICLIENT", "")
 
g_OldStyle = GetWindowLong(MDI-FRAMEhWnd, GWL_Style)
SetWindowLong MDI-FRAMEhWnd, GWL_Style, g_OldStyle OR MDIS_ALLCHILDSTYLES
Die MDI-Frame dürfte aber in die VB-Form eingebettet sein. Daher muss man erst die eigentliche
MDI-Client-Klasse herauslesen und diesem dann die neue Eigenschaft anpassen.

Beitrag wurde zuletzt am 31.08.16 um 18:09:02 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Form Handling - MDI - kein MDI1.853sebbi31.08.16 14:10
Re: Form Handling - MDI - kein MDI1.024Blackbox31.08.16 17:43
Re: Form Handling - MDI - kein MDI1.232sebbi05.09.16 13:04
Re: Form Handling - MDI - kein MDI1.083Blackbox05.09.16 17:11
Beispiel FindWindowEx für MDI-FRAME-Client1.176Blackbox08.09.16 19:51

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel