Minimieren



  • Hallo,

    hab eine kleine Dialogbasierte Applikation, die im HIntergrund läuft und daher am BEsten als Trayicon aufgehoben ist. Habe daher dies eingebaut, und es klappt auch, wenn ich es mit einem eigenen Button mache, aber wenn ich den Minimieren BUtton dazu verwenden will, klappt es nicht weil die App. in die Taskleiste minimiert wrid, obwoh ich die Nachricht abfange, und meine ApptoTray Funktion aufrufe, die auch das Trayicon erstellt. Wenn ich dan nauf das Icon klicke verschwindet die App aus der Taskleiste ein weiterer KLick bringt sie wieder zum Vorschein, aber minimiert. Was mache ihc falsch? Danke für Hinweise! Viel Grüße, Markus!



  • Am besten du machst das über den Schließenbutton, und setzt in WM_CLOSE den Code zum Minimieren rein, wie du ihn schon beim Button verwendet hast. Wenn der User das Programm schließen möchte, musst er auf das Trayicon rechtsklicken, dann erscheint ein Menü mit der Option schließen. Daraus folgt dann eben, dass das Programm geschlossen wird.

    Mfg Ominion



  • Keine Ahnung von Trayicons, aber wie wird den deine Anwendung geöffnet? ShowWindow? Parameter SW_NORMAL oder wie der heißt?



  • ShowWindow (hWnd, SW_SHOW);
    


  • Das ist aber nicht sonderlich relevant. Mein Lösungsvorschlag hat bei mir geklappt, also probiers wenn du Lust hast.

    Mfg Ominion



  • Bei mir klappt das nicht, die Anwendung geht zu!

    Scheinbar liegt das daran, das es eine Dialoganwendung ist, bei einer Anderen (gerade Ausprobiert) klappt es auch auf dem ersten Weg!



  • Du hast aber hoffentlich keine WM_DESTROY-Nachricht gesetzt, in der, rein zufällig natürlich, PostQuitMessage(0) steht? Falls doch: erst PostQuitMessage(0) aufrufen, wenn der User im Menü auf Schließen klickt.

    Mfg Ominion



  • man Leute in jedem Thread immer das gleiche. Ist das hier die grosse Ratestunde oder was!?

    Wenn ihr irgendwelche Sachen ausprobiert und dann sagt "Geht nicht" oder "Häh? Bei mir geht das aber", dann ist es ganz hilfreich den entsprechenden Code auch zu posten, damit andere schauen können, ob ihr es überhaupt richtig macht.



  • Ich weiß ja nicht wie es bei dir ist, aber ich werde lieber auf die Lösungen gestoßen als sie fertig vor meiner Nase zu haben. Wie soll den jemand WinAPI lernen, wenn er nur alles vorgekaut bekommt und nichts weiter machen muss, als den Code zu kopieren und ihn dann zu kompilieren?

    Mfg Ominion



  • SW_SHOW
    Activates the window and displays it in its current size and position.

    SW_SHOWNORMAL
    Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

    Bringt SW_SHOWNORMAL nix?



  • Analysis schrieb:

    man Leute in jedem Thread immer das gleiche. Ist das hier die grosse Ratestunde oder was!?

    Wenn ihr irgendwelche Sachen ausprobiert und dann sagt "Geht nicht" oder "Häh? Bei mir geht das aber", dann ist es ganz hilfreich den entsprechenden Code auch zu posten, damit andere schauen können, ob ihr es überhaupt richtig macht.

    Schau mal oben, Schlaumeier, da hab ich den Code gepostet! ZU dem anderen Thema, ich habe natürlich

    PostQuitMessage(0)
    

    zuvor rausgenommen.



  • Versuch schrieb:

    SW_SHOW
    Activates the window and displays it in its current size and position.

    SW_SHOWNORMAL
    Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

    Bringt SW_SHOWNORMAL nix?

    macht keinen Unterschied:

    ShowWindow (hWnd, SW_SHOWNORMAL);
    

    , wie gesagt, das Problem ist nicht, dass ich das Fenster nicht ausblenden kann, sonderen, dass ich den normalen Minimieren-Mechanismus nicht ausgeschaltet bekommen, und somit das Fenster als Minimiert in der Taskleiste verbleibt!



  • Da du meinen alten Vorschlag wohl nicht nehmen willst, kommt hier eben der neue: Zeichne deine eigene Leiste, mit kleinen Buttons auf denen noch ein Bild mit dem entsprechenden Symbol ist. Dann übergebe dem Minimize Button die Funktion zum minimieren als TrayIcon. Auch das müsste klappen.

    Mfg Ominion



  • Ominion schrieb:

    Da du meinen alten Vorschlag wohl nicht nehmen willst, kommt hier eben der neue: Zeichne deine eigene Leiste, mit kleinen Buttons auf denen noch ein Bild mit dem entsprechenden Symbol ist. Dann übergebe dem Minimize Button die Funktion zum minimieren als TrayIcon. Auch das müsste klappen.

    Mfg Ominion

    Dein alter Vorschlag ist am geleichen Problem geschietert, OK war der Schon, wenn auch nicht schön! Der Neue gefällt mir Gut, muss nur erst mal sehen wie das geht! (Aber nicht mehr heute)

    Danke, Gruß, morgen erzähl ich wie's gelaufen ist!



  • WinApiUSer schrieb:

    Bei mir klappt das nicht, die Anwendung geht zu!

    Scheinbar liegt das daran, das es eine Dialoganwendung ist, bei einer Anderen (gerade Ausprobiert) klappt es auch auf dem ersten Weg!

    Wenn du WM_CLOSE abfängst ? break/return bei switch auch richtig gesetzt ? (falls du switch benutzt...)



  • rofl dann lass dir eben nicht helfen. Aus deiner einen ShowWindow Zeile soll ich ableiten wo dein newbiger fehler liegt? Hier ein Tipp, wenn du so schlau bist, lern C und dann Winapi. wer von programmieren keine ahnung hat sollte in diesem forum sowieso nicht rumhängen, such dir ein newb forum wie quellcodes.de oder so.


Anmelden zum Antworten