Protected override CreateParams CreateParamsĬreateParams createParams = base.CreateParams ĬreateParams.ExStyle |= 0x00000020 // WS_EX_TRANSPARENT Doing so may allow the mouse events to pass through. I think you can also override the CreateParams if you have already made your form transparent. The following link shows how to cycle through the windows on the desktop of your application: In order to pass through your mouse messages, have you considered intercepting the mouse click on your top window, (assuming this has been set to be a transparent window), then hiding your window, fire the same mouse message using the user32 import SendMessage, and then showing your window again? If you don't want to hide your window, you can probably just call SendMessage directly to the various other window handles. Question: How can I overlay the entire screen with effects efficiently? Using a color other than the transparency key will result in the problem of Solution 1. In the example the overlay is mostly entirely transparent. The closest thing I saw was this, but it the user will not be able to "click through" the overlay. Also anti virus programs will likely detect it as something harmfull. This is not at all a pretty solution and will not work with C#. Hooking the "desktop draw event" is not possible in C# as I would have to inject a DLL into explorer.exe. It will give nasty effects when windows are moved and also will result in heavy motion blur effects as well. Simply drawing on the desktop buffer doesn't solve the issue either. ![]() The problem however is, that if I simply create a TopMost window over the entire screen, the user will not be able to interact with whatever is beneath this window. Basically I want to "replace" the entire screen, while the user still has the ability to interact normally with Windows. of the entire screen and add some Text and effects. I'm trying to create a full screen overlay over the entire screen, which will change the colors / saturation etc.
0 Comments
Leave a Reply. |