Event/Signal gesucht



  • moin leute

    Ich bin grad dabei mich in die Win32Api eunzuarbeiten nun hab ich folgendes Problem ich suche einen event/signal (Funktion) dir mir mitteilt wenn ein Fenster von einem anderen überdeckt wird.
    Gibt es in der WinApi sowas?

    wäre für jeden tip hinweis dankbar.

    MFG



  • Fragen wir mal so: Warum brauchst Du das?


  • Mod

    Jochen Kalmbach schrieb:

    Fragen wir mal so: Warum brauchst Du das?

    Evtl. will er hinter dem Fenster auf die Rückseite versteckt ein Kennwort schreiben... 🤡 🤡 <duck&wech>



  • ich brauche das weil das eine fenster für die applikation nicht überdeckt werden darf. die ganzen fenster sind in einem fenster drinne und das eine darf nicht überdeckt werden.


  • Mod

    Und was willst Du dann tun?
    Ich wüsste nicht einmal einen vernünftigen Weg zu ermitteln, wer einen Teil eines Fenster verdeckt.



  • Hallo,

    wenn Du verhindern willst, dass das eine Fenster nicht von anderen Fenstern verdeckt werden darf, so setze es einfach auf Topmost:

    SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, 
                    SWP_NOSIZE | SWP_NOMOVE | SWP_NOREDRAW | SWP_NOACTIVATE);
    

    Sollte deine Anwendung allerdings eine MessageBox() aufpoppen lassen sollen,
    so ist die Messagebox hinter diesem Window! Verindern kann man das, wenn man
    dann die Topmost-Eigeschaft kurz ausschaltet, einfach mit:

    SetWindowPos (hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, 
                    SWP_NOSIZE | SWP_NOMOVE | SWP_NOREDRAW | SWP_NOACTIVATE);
    

    danach wieder einschaltet.

    Einfach eine eigene foo dafür schreiben:

    void SwapZOrder(HWND hWnd){
       static BOOL bMost = false;
       HANDLE HWND_NEWORDER = NULL;
       if(!bMost)
             HWND_NEWORDER = HWND_TOPMOST;
               else
                   HWND_NEWORDER = HWND_NOTOPMOST;
    
       SetWindowPos (hWnd, HWND_NEWORDER, 0, 0, 0, 0, 
                    SWP_NOSIZE | SWP_NOMOVE | SWP_NOREDRAW | SWP_NOACTIVATE)     
    }
    

    🙂


Anmelden zum Antworten