Taskbar wird während Laufzeit eines Programms verschoben



  • Wenn man ein Fensterprogramm erstellt, möchte man ja dem dümmsten anzunehmenden Nutzer keine Angriffsfläche bieten.

    Wenn nun jemand, während ein Fensterpogramm läuft, auf die Idee kommt, die Taskbar zu verschieben, vergrößern, verkleinern, werden laut MSDN ja die Notifications ABN_POSCHANGED und eine ABN Nachricht, wenn der Autohide-Status geändert wird, gesendet, und zwar an das Hauptfenster.

    Dummerweise empfängt meine WndProc diese Nachrichten gar nicht, wenn ich z.B. bei den Eigenschaften meiner Taskbar diese von "Autohide" auf "Always on top" stelle. Ich habs in WM_COMMAND und in WM_NOTIFY versucht. Warum kriegt mein Fenster die Nachrichten nicht?



  • JensE schrieb:

    Wenn nun jemand, während ein Fensterpogramm läuft, auf die Idee kommt, die Taskbar zu verschieben, vergrößern, verkleinern, werden laut MSDN ja die Notifications ABN_POSCHANGED und eine ABN Nachricht, wenn der Autohide-Status geändert wird, gesendet, und zwar an das Hauptfenster.

    Und zwar an das Hauptfenster? Wo hast Du denn das gelesen? Da es das Hauptfenster gar nicht gibt, kann das nicht sein. Und tatsächlich, wenn ich die Hilfe zu ABN_STATECHANGE betrachte, steht da folgendes:

    MSDN schrieb:

    Notifies an appbar that the taskbar's autohide or always-on-top state has changed--that is, the user has selected or cleared the "Always on top" or "Auto hide" check box on the taskbar's property sheet.

    Hast Du eine Appbar registriert (SHAppBarMessage)?



  • @-King-:

    Nein: Aber ich kann bezeugen, dass in der MSDN unter dem Kapitel Taskbar (im Unterverzeichnis Shell und Common Controls) steht, dass man diese Messages kriegt, wenn etwas an der Taskbar verändert wird, und zwar das Hauptfenster der Anwendung über WM_NOTIFY.

    Wie macht ihr das denn mit der Taskbar??



  • JensE schrieb:

    Nein: Aber ich kann bezeugen, dass in der MSDN unter dem Kapitel Taskbar (im Unterverzeichnis Shell und Common Controls) steht, dass man diese Messages kriegt, wenn etwas an der Taskbar verändert wird, und zwar das Hauptfenster der Anwendung über WM_NOTIFY.

    Im Kapitel Taskbar kommen diese Notifications gar nicht vor, werden mit nicht einer Silbe erwähnt (nicht online, nicht Oktober 2001, nicht Oktober 2003). Und ich würde diese Stelle zu gern selber lesen!

    JensE schrieb:

    Wie macht ihr das denn mit der Taskbar??

    Was sollen wir denn da machen? Wird die Größe geändert, gibt es WM_SIZE. Mir reicht das.



  • Ok, danke, das reicht mir schon.



  • Die Nachricht ABN_STATECHANGE wird an eine von dir erzeugte AppBar gesendet, wenn eine andere im selben Desktop geändert wird.



  • Ja, das stimmt.

    Nur ich weise euch darauf hin, dass auch zur Taskbar dasselbe in der MSDN stand in Bezug auf die ABN_ und ABM_ Nachrichten, da könnt ich mit euch wetten.

    Aber danke an -King-, denn die WM_SIZE Nachricht ist tatsächlich die Lösung. 🙂


Anmelden zum Antworten