Malte 2
12.08.2002, 23:43
Hi!
Ich hab ein . . . naja . . . nicht direkt Problem, aber eine Sache die besser gehen könnte.
Mein Programm erzeugt in WinMain() mit CreateDialog() ein Fenster aus den Ressourcen. Das Fenster wird mit ShowWindow() und dem Parameter SW_HIDE nach dem Erzeugen versteckt und stattdessen ein Symbol neben der Uhr in der Taskleiste angezeigt. Die Eigenschaft "Sichtbar" ist im Ressourceneditor auf false gesetzt.
Wenn man nun auf dieses Symbol doppelklickt, wird das Fenster mit ShowWindow(hWnd, SW_SHOWNORMAL) angezeigt. Aber: Wenn man das zum ersten mal macht, wird das Fenster nicht aktiviert (das heißt die Titelleiste bleibt grau). Wenn man das Fenster dann wieder in die Taskleiste verbannt (gibt's ne Schaltfläche für, die wieder ShowWindow(hWnd, SW_HIDE) aufruft) und es dann wieder erweckt, klappt alles perfekt, das heißt, dass das Fenster dann aktiviert wird.
Wenn man das Programm startet, sollte eigentlich das vorher laufende Programm auch aktiviert bleiben und das Fenster sollte dann auch beim ersten Start aktiviert werden.
Ich habe herausgefunden, dass, wenn ich "Sichtbar" auf true setze, alles klappt. Die laufende Anwendung bleibt aktiv und das Programm ist auch nach dem ersten Erwachen aktiviert. Das Problem ist nur, dass man das Fenster dann nach dem Start kurz aufblitzen sieht, bis es dann durch ShowWindow(hWnd, SW_HIDE) versteckt wird. Das ist natürlich nicht sooohhh toll.
Gibt's dafür ne Lösung? Ich hab in dem Teil der switch-Anweisung, die die Doppelklicknachricht des Icons der Taskleiste bearbeitet, schon BringWindowToTop(), zweimal ShowWindow(), SetActiveWindow() und so versucht. Alles hat nicht geklappt. Gibt's dafür ne Lösung oder muss ich damit leben, dass das Fenster kurz aufblitzt oder dass es beim ersten Anzeigen nicht aktiv ist?
Ich hab ein . . . naja . . . nicht direkt Problem, aber eine Sache die besser gehen könnte.
Mein Programm erzeugt in WinMain() mit CreateDialog() ein Fenster aus den Ressourcen. Das Fenster wird mit ShowWindow() und dem Parameter SW_HIDE nach dem Erzeugen versteckt und stattdessen ein Symbol neben der Uhr in der Taskleiste angezeigt. Die Eigenschaft "Sichtbar" ist im Ressourceneditor auf false gesetzt.
Wenn man nun auf dieses Symbol doppelklickt, wird das Fenster mit ShowWindow(hWnd, SW_SHOWNORMAL) angezeigt. Aber: Wenn man das zum ersten mal macht, wird das Fenster nicht aktiviert (das heißt die Titelleiste bleibt grau). Wenn man das Fenster dann wieder in die Taskleiste verbannt (gibt's ne Schaltfläche für, die wieder ShowWindow(hWnd, SW_HIDE) aufruft) und es dann wieder erweckt, klappt alles perfekt, das heißt, dass das Fenster dann aktiviert wird.
Wenn man das Programm startet, sollte eigentlich das vorher laufende Programm auch aktiviert bleiben und das Fenster sollte dann auch beim ersten Start aktiviert werden.
Ich habe herausgefunden, dass, wenn ich "Sichtbar" auf true setze, alles klappt. Die laufende Anwendung bleibt aktiv und das Programm ist auch nach dem ersten Erwachen aktiviert. Das Problem ist nur, dass man das Fenster dann nach dem Start kurz aufblitzen sieht, bis es dann durch ShowWindow(hWnd, SW_HIDE) versteckt wird. Das ist natürlich nicht sooohhh toll.
Gibt's dafür ne Lösung? Ich hab in dem Teil der switch-Anweisung, die die Doppelklicknachricht des Icons der Taskleiste bearbeitet, schon BringWindowToTop(), zweimal ShowWindow(), SetActiveWindow() und so versucht. Alles hat nicht geklappt. Gibt's dafür ne Lösung oder muss ich damit leben, dass das Fenster kurz aufblitzt oder dass es beim ersten Anzeigen nicht aktiv ist?