在浮动侧边栏中切换"笔"按钮后,我正在制作一个用鼠标在屏幕上绘图的小工具.
我做了这个(请不要笑)通过最顶层的窗体形式及其背景,因为它的透明度键覆盖整个屏幕.当我处于绘图模式时,我需要让鼠标不要点击表单到下面的东西.我试过这样: Windows窗体的透明背景无法点击 如何禁用点击透明控件?
它成功地停止了鼠标,但也没有最大化窗体并用鼠标拖动它(使用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);
}
Run Code Online (Sandbox Code Playgroud)
更新:现在完全以另一种方式解决问题.它看起来不像WndProc会工作,所以我只是在整个屏幕上创建了一个空白表单,从中显示了我的主要表单(form.Show(this)).然后调整位于下方的空白表单的不透明度从0%到1%以允许/防止点击.作品!感谢所有的答案,教会了我很多.