Verdecktes Fenster ermitteln



  • Wie kann ich das Fenster ermitteln das von meiner aktuellen Form (Fenster) (teilweise oder ganz) verdeckt wird.

    Ich hab ein wenig mit GetNextWindow und so probiert aber bis jetzt nix brauchbares zustande bekommen.



  • So auf die Schnelle:

    BOOL MyEnumWindows(HWND hWnd, WNDENUMPROC lpEnumProc, LPARAM lParam)
    {
      RECT rc, rcTemp1, rcTemp2;
      HWND hWndTemp;
    
        if((!IsWindow(hWnd)) || (!lpEnumProc))
        {
            SetLastError(ERROR_INVALID_PARAMETER);
            return(FALSE);
        }
    
        GetWindowRect(hWnd, &rc);
    
        for(hWndTemp = GetWindow(GetDesktopWindow(), GW_CHILD); hWndTemp; hWndTemp = GetNextWindow(hWndTemp, GW_HWNDNEXT))
        {
            if((!IsWindowVisible(hWndTemp)) || (hWndTemp == hWnd) || (GetWindowLongPtr(hWndTemp, GWL_EXSTYLE) & WS_EX_TOPMOST))
                continue;
    
            GetWindowRect(hWndTemp, &rcTemp1);
    
            if(IntersectRect(&rcTemp2, &rc, &rcTemp1))
                if(!lpEnumProc(hWndTemp, lParam))
                    break;
        }
    
      return(TRUE);
    }
    

    Diese Funktion verhält sich, bis auf einen Unterschied, wie EnumChildWindows (dort kannst Du Dir die Beschreibung anschauen). Für jedes Fenster, das von hWnd (angeben im ersten Parameter) ganz oder teilweise verdeckt wird, wird die im zweiten Parameter angegebene Funktion aufgerufen.

    [ Dieser Beitrag wurde am 16.01.2003 um 17:08 Uhr von -King- editiert. ]



  • [ Dieser Beitrag wurde am 16.01.2003 um 17:04 Uhr von -King- editiert. ]



  • Nie wieder Alkohol am Nachmittag ...

    [ Dieser Beitrag wurde am 16.01.2003 um 17:07 Uhr von -King- editiert. ]



  • @-King-: Du scheinst ja heute wirklich nicht ganz beisammen zu sein... am Besten du legst dich hin und schläfst deinen -was_auch_immer- aus ;).

    cya 🙂



  • Könntest du das vielleicht (bitte, bitte) noch ein bischen für mich kommentieren. Ganz besonders bei der For(.....) - Anweisung blicke ich nicht wirklich durch.

    Ah ich glaub ich habs jetzt doch durchschaut.

    [ Dieser Beitrag wurde am 16.01.2003 um 22:11 Uhr von Bigwill editiert. ]



  • Ah ich glaub ich habs jetzt doch durchschaut.

    Dann bin ich beruhigt und werde mir weitere Ausführungen sparen. Wenn Dir trotzdem noch was unklar sein sollte, kannst Du Dich ja nochmal melden.


Anmelden zum Antworten