我正在尝试创建一个具有以下属性的窗口:
我可以弄清楚如何使用WS_EX_LAYERED
和WS_EX_TRANSPARENT
,设置TopMost
以及更改不透明度来使整个窗口透明(部分或全部)透明并单击。无法在有限的部分中弄清楚如何使这些要求真正适用于窗口。知道从哪里开始吗?
编辑:有人指出,制作一个巨大的,不可见的窗口是没有意义的,创建一个小窗口并使用FormBorderStyle.FixedToolWindow
和{{1 }}使其无边界且不出现在任务栏上,然后四处移动。我仍然需要弄清楚如何使窗口的“背景”透明并单击,所以我将这个问题搁置一遍。
答案 0 :(得分:0)
因此,我设法通过反复试验弄清楚了这一点,我为花时间陪我道歉。
这里的解决方案是:
将OnPaintBackground
覆盖为空方法,因此实际上并没有在背面涂上任何颜料
设置样式以使其支持透明作为底色,然后将底色和TransparencyKey
设置为透明
将FormBorderStyle
设置为None,将TopMost
设置为False,将ControlBox
设置为False,将ShowInTaskbar
设置为{{1} }
最终结果:一种完全不可见并且可以单击的表单,同时仍允许用户与放置在表单上的任何控件进行交互。