Problem mit Maus und transparenten Fenstern
-
Hi, Ich möchte das ein transparentes Fenster(nicht komplett transparent) das immer im Vordergrund liegt nicht auf Maus-klicks reagiert. Ich möchte mit der Maus das Fenster ansprechen das unter dem transparenten Fenster liegt.
Ist das möglich?
-
Wenn du's komliziert haben willst:
- Abfrage, wo geklickt wurde
- EnumWindows
-> höchstes Fenster an der Klick-Position suchen
- ScreenToClient für das gefundene Fenster
- SendMessage mit WM_...BUTTONDOWN an das Fenster... geht aber vielleicht auch einfacher
M.T.
-
hmm... Ok gibts jemanden der die simple Lösung kennt
-
Wenn dein Fenster keine Eingabe Funktion hat z. B. eine Uhr nur zum Anzeigen. Dann könnte man es eigentlich direkt in Desktop DC zeichnen.
Frag mich lieber nich wie es geht aber sowas gibt es ganz bestimmt. z. B. Volumenanzeige bei den Multimediatastaturen.
-
Vielleicht hilft hier SetWindowRgn
siehe hierzu auch: Win32 Window Skinning
-
Ja mein Fenster dient nur zur Anzeige
und SetWindowRgn hab ich schon getestet, klappt aber nichtaus der MSDN:
"The SetWindowRgn function sets the window region of a window. The window region determines the area within the window where the system permits drawing. The system does not display any portion of a window that lies outside of the window region "
-
Dann kannst du dir DC von dem Bildschirm holen:
hDC = GetDC(NULL);
und einfach darein zeichnen.
Und ein wenig aus MSDN:
Parameters
hWnd
[in] Handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen.
-
Danke, das sollte gehen