gpt4 book ai didi

c# - Windows窗体背景透明无法点击

转载 作者:行者123 更新时间:2023-11-30 22:48:52 30 4
gpt4 key购买 nike

使用 c#/windows 窗体。尝试使表单的背景透明,同时又不会失去接收点击的能力。

  1. this.Opacity 使整个表单透明(不仅仅是背景

  2. BackColor = Color.Red;
    TransparencyKey = BackColor;

使窗体的背景透明并且可以点击。我希望表单是透明的,但它应该能够接收点击

如何?

最佳答案

您需要处理 WM_NCHITTEST。请注意,在下面的代码片段中,m.lParam 包含鼠标位置相对于屏幕左上角的压缩 X 和 Y 坐标,您需要检查该位置是否与您的透明区域匹配。

在此示例中,我将返回 HTCAPTION,这意味着该区域的行为类似于窗口的标题,即用户将能够通过单击并拖动该位置来拖动窗口。查看 here 可以返回哪些其他值及其含义

protected override void WndProc(ref Message m) {
switch (m.Msg) {
case 0x84: // this is WM_NCHITTEST
base.WndProc(ref m);
if ((/*m.LParam.ToInt32() >> 16 and m.LParam.ToInt32() & 0xffff fit in your transparen region*/)
&& m.Result.ToInt32() == 1) {
m.Result = new IntPtr(2); // HTCAPTION
}
break;
default:
base.WndProc(ref m);
break;
}
}

关于c# - Windows窗体背景透明无法点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1436059/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com