Fenster & Fokus

20/03/2009 - 18:57 von Juergen Thuemmler | Report spam
Hi *.*,

ein VB-Programm hat zwei Fenster - Hauptfenster und Hilfefenster. Jedes kann
unabhàngig vom anderen aktiviert werden und kommt dann in der Vordergrund.
Wenn jetzt ein anderes Programm im Vordergrund ist und ich aktiviere das
Hauptfenster des VB-Programms, legt sich auch das Hilfefenster vor das
andere Programm. Das will ich nicht.
Die VB-IDE (SDI) verhàlt sich genauso - wenn ein Fenster aktiviert wird,
kommen auch die anderen nach vorn. Anders z.B. bei Outlook - da sind
Hauptfenster und geöffnete Mail total unabhàngig - das andere wird beim
Aktivieren des einen nicht mit in den Vordergrund geholt. Wie geht das?
(Anmerkung: Das Hilfefenster wird nur mit .Show angezeigt; nicht modal und
nicht "owned").

Jürgen.
 

Lesen sie die antworten

#1 Thorsten Doerfler
20/03/2009 - 21:51 | Warnen spam
Juergen Thuemmler schrieb:
ein VB-Programm hat zwei Fenster - Hauptfenster und Hilfefenster. Jedes kann
unabhàngig vom anderen aktiviert werden und kommt dann in der Vordergrund.
Wenn jetzt ein anderes Programm im Vordergrund ist und ich aktiviere das
Hauptfenster des VB-Programms, legt sich auch das Hilfefenster vor das
andere Programm. Das will ich nicht.



Das liegt eventuell daran, dass alle Fenster automatisch vom nicht
sichtbaren ThunderRT6Main Window besessen sind, was auch teilweise ander
lustige Seiteneffekte hat:

[Google Groups] MsgBox verliert Fokus bei Taskwechsel
http://groups.google.de/group/micro...24aa436f60

Zum Entfernen dieses ungebetenen Features:

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long _
) As Long

Private Const GWL_HWNDPARENT As Long = -8

Private Sub Form_Load()
SetWindowLong Me.hWnd, GWL_HWNDPARENT, 0
End Sub

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen