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?
-
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.
-
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) }