Hallo, ich habe eine Frage zu der Funktion SetForeGroundWindow!
Ich wollte diese Funktion benutzen um folgendes Problem zu lösen:
Wenn mein Programm gestartet wird, und es läuft schon, dann soll das Fnester der schon laufenden Instanz in den Vordergrund geholt werden!
Ich suche das FEnster mit FindWindow heraus, und setze es dann mit SetForegroundWindow in den Vordergrund, kein Problem!
Das Problem entsteht, wenn das Fenster vorher minimiert wurde,
Dann möchte ich es erstmal anzeigen!
Habe also vor SetForegroundWindow ein
ShowWindow() mit Option SW_SHOWNORMAL gesetzt!
Nun passiert folgendes:
Wenn ich nun das Programm ein zweites mal starte, und das Fenster minimiert war, dann kommt irgednwie ein zweites Fenster, welches komisch abgeschnitten ist, man sieht also nur den oberen Rand des Fensters mit dem Fensternamen!
Mit dem Ding jkann man nichts machen, höchstens mit der Maus verschieben!
Es geht erst wieder weg, wenn man das "richtige" Fenster von der ersten Instanz des Programms zumacht! Also das ganze Programm beendet!
Wenn aber das fenster vorher nicht minimiert war, sondern nur im Hintergrund, dann geht alles so, wie ich es will!
Ich habe das ganze Problem mal folgendermaßen gelöst:
Also ohne SetForegroundWindow!
Das funktioniert genauso wie die Version mit Setforegroundwindow, also mit dem Fehler!
Und das vesrtehe ich nicht, wenn ich erst das Fenster minimiere, ist es doch in dem gleichen Zustand, als wenn ich es "per Hand" minimiere, oder?
Ich wollte diese Funktion benutzen um folgendes Problem zu lösen:
Wenn mein Programm gestartet wird, und es läuft schon, dann soll das Fnester der schon laufenden Instanz in den Vordergrund geholt werden!
Ich suche das FEnster mit FindWindow heraus, und setze es dann mit SetForegroundWindow in den Vordergrund, kein Problem!
Das Problem entsteht, wenn das Fenster vorher minimiert wurde,
Dann möchte ich es erstmal anzeigen!
Habe also vor SetForegroundWindow ein
ShowWindow() mit Option SW_SHOWNORMAL gesetzt!
Nun passiert folgendes:
Wenn ich nun das Programm ein zweites mal starte, und das Fenster minimiert war, dann kommt irgednwie ein zweites Fenster, welches komisch abgeschnitten ist, man sieht also nur den oberen Rand des Fensters mit dem Fensternamen!
Mit dem Ding jkann man nichts machen, höchstens mit der Maus verschieben!
Es geht erst wieder weg, wenn man das "richtige" Fenster von der ersten Instanz des Programms zumacht! Also das ganze Programm beendet!
Wenn aber das fenster vorher nicht minimiert war, sondern nur im Hintergrund, dann geht alles so, wie ich es will!
Ich habe das ganze Problem mal folgendermaßen gelöst:
Code:
ShowWindow(hwnd,SW_SHOWMINIMIZED);
ShowWindow(hwnd,SW_SHOWNORMAL);
Also ohne SetForegroundWindow!
Das funktioniert genauso wie die Version mit Setforegroundwindow, also mit dem Fehler!
Und das vesrtehe ich nicht, wenn ich erst das Fenster minimiere, ist es doch in dem gleichen Zustand, als wenn ich es "per Hand" minimiere, oder?