Re: disable mouseclick-transparency in vista
- From: "Frank Dzaebel" <Post@xxxxxxxxxxxxxx>
- Date: Fri, 2 Mar 2007 22:41:42 +0100
Hallo Sebastian,
In the OnPaint function I filled the Clientrectangle with Color.Violet. If I run my program in WindowsXP the Mouse-events get raised. If I run the same program under Windows Vista the mouse events does not get raised. But why? I have no Aero enabled.
Vor-Vista-OS haben hier einen dokumentierten Bug, wenn DoubleBuffer auf true ist. Wird DoubleBuffer auf false gesetzt, ist das Verhalten wie in Vista (korrekt). Vista setzt das hier gemäss Doku um:
Zitat Doku:
"Alle Mausaktionen, z. B. ein Mausklick, die für die transparenten Bereiche des Formulars ausgeführt werden, werden an die Fenster weitergegeben, die sich *unter* dem transparenten Bereich befinden. Wenn beispielsweise der Clientbereich eines Formulars transparent ist, wird die Ereignisbenachrichtigung für einen Mausklick in diesem Bereich an das jeweils *darunter* befindliche Fenster gesendet."
[Form.TransparencyKey-Eigenschaft]
http://msdn2.microsoft.com/de-de/library/system.windows.forms.form.transparencykey(VS.80).aspx
[BUG: TransparencyKey does not work for double-buffered controls in 32-bit color mode]
http://support.microsoft.com/kb/820640/en-us
Info in diesem Zusammenhang auch:
[BUG: The TransparencyKey property is not effective for Windows forms if the color depth of the monitor is set to a value that is greater than 24-bit
http://support.microsoft.com/kb/822495/en-us
ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
.
- References:
- disable mouseclick-transparency in vista
- From: Sebastian Michel
- disable mouseclick-transparency in vista
- Prev by Date: Re: Eventhandler prüfen
- Next by Date: Re: Eventhandler prüfen
- Previous by thread: disable mouseclick-transparency in vista
- Next by thread: Eventhandler prüfen
- Index(es):
Relevant Pages
|