Herausfinden wann Grafik einstellungn geändert wurden, bzw. Win GUI/ Desktop neu erstellt wird.



  • Hallo ,

    ich denke ich bin am ehsten richtig. Ich möchte mitbekommen wenn Windows das Bild bzw. den Desktop neu initialiert!? Das geschieht ja sobald eine Anwendung (bspw. PC Spiel oder Screensaver) sich das Grafik device greift und sich darfstellt oder!?



  • SOweit ich weiss, wird dies hier verschick:
    http://msdn.microsoft.com/en-us/library/ms725497(VS.85).aspx
    Bin mir aber gerade nicht mehr sicher...



  • NullBockException schrieb:

    Ich möchte mitbekommen wenn Windows das Bild bzw. den Desktop neu initialiert!?

    Dazu wertest Du in Deiner Nachrichtenschleife folgende Nachrichten aus:
    WM_SETTINGCHANGE: A message that is sent to all top-level windows when the SystemParametersInfo() function changes a system-wide setting or when policy settings have changed.
    WM_DISPLAYCHANGE: Bildschirmauflösung wurde geändert.

    Folgende Nachrichten könnten Dich evtl. auch interessieren:
    WM_FONTCHANGE: Pool der Font-Resourcen wurde verändert.
    WM_SYSCOLORCHANGE: Systemweite Farbeinstellung wurde verändert.
    WM_THEMECHANGED: Systemweite Themeeinstellung wurde verändert.

    NullBockException schrieb:

    Das geschieht ja sobald eine Anwendung (bspw. PC Spiel oder Screensaver) sich das Grafik device greift und sich darfstellt oder!?

    Das "sich darstellen" von einer Applikation geschieht unter Windows grundsätzlich über ein Fenster.
    D.h. Du kannst somit auch überprüfen, ob Deine Applikation noch den Foreground-Window hast oder nicht.

    Was Screensaver betrifft: Das kannst Du ganz leicht feststellen, indem Du die Nachricht WM_SYSCOMMAND mit den Parametern SC_SCREENSAVE und/oder SC_MONITORPOWER auswertest.

    Achtung: Bei all diesen Informationen darf man nicht vergessen, daß es multiple Desktops gibt. D.h. wie es sich bei diesem Thema im Detail verhält, muß ich leider passen...

    HTH,
    Martin



  • Danke schonmal, aber noch ne frage zu folgendem:

    Das "sich darstellen" von einer Applikation geschieht unter Windows grundsätzlich über ein Fenster.
    D.h. Du kannst somit auch überprüfen, ob Deine Applikation noch den Foreground-Window hast oder nicht.

    Ich verwende eine 3D engine (.NET wrapper von ogre3D) diese verwendet DirectX, so nun wid da ja ein RenderWindow erstellt etc. Mit D3Device usw.

    Ich habe nun das Problem das sobald ich in der laufend 3d Anwendung den "Desktop" verlasse (bspw. Ctrl+alt+entf) und wieder zurück gehe, mein 3D Render bild weg ist... ich weis nich was windows speziell DirectX da so tut, damit ich wieder ein "Bild" habe



  • How to properly reset a direct3d device?



  • At this time, i do not reset the device? And thats my question: Is it necessary to reset the device after i leave and reinit the desktop? And how?


Anmelden zum Antworten