【发布时间】:2013-04-07 12:31:31
【问题描述】:
我正在制作一个小工具,用于在浮动侧边栏中切换“笔”按钮后用鼠标在屏幕上绘图。
我已经做到了这一点(请不要笑),让一个最顶层的窗口窗体以其背景作为其透明度键覆盖整个屏幕。 当我处于绘图模式时,我需要让鼠标不要在表单上单击下面的内容。我尝试遵循以下操作: Windows form with a transparent background that cannot be clicked through How to disable click through on transparent control?
它成功地停止了鼠标但也取消了最大化表单并用鼠标拖动它(使用 HTCAPTION IntPtr(2) 这是)我尝试使用 MSDN 上列出的其他一些值,但没有运气。
我的深度不够,任何帮助都非常感谢(新手友好请!)
PS 我现在正在用这个..
//code for allowing clicking through of menus
protected override void WndProc(ref Message m)
{
if (penMode && m.Msg == 0x84)
{
m.Result = new IntPtr(2);
}
else
base.WndProc(ref m);
}
更新:现在通过完全以另一种方式解决问题。看起来 WndProc 不起作用,所以我只是在整个屏幕上创建了一个空白表单,并在其中显示了我的主表单 (form.Show(this))。然后将位于下方的空白表单的不透明度从 0% 调整为 1% 以允许/防止点击。作品! 感谢所有的答案,教会了我很多。
【问题讨论】: