C# 鼠标穿透窗体与恢复】的更多相关文章

转自原文 C# 鼠标穿透窗体与恢复 引入user32.dll [DllImport("user32.dll")] public static extern uint SetWindowLong(IntPtr h, int n, uint x); 使指定窗体穿透,this.Handle为将要设为穿透效果的窗体句柄 SetWindowLong(this.Handle, -20, 0x20 | 0x80000); 恢复 this.FormBorderStyle = this.FormBord…
通过以下代码,在窗体启动后调用方法SetPenetrate() 即可实现窗体的穿透功能. 同样该功能需要加载命名空间 using System.Runtime.InteropServices; private const uint WS_EX_LAYERED = 0x80000; private const int WS_EX_TRANSPARENT = 0x20; ); ); ; [DllImport("user32", EntryPoint = "SetWindowLon…
#region 窗体鼠标穿透 private const uint WS_EX_LAYERED = 0x80000; private const int WS_EX_TRANSPARENT = 0x20; private const int GWL_STYLE = (-16); private const int GWL_EXSTYLE = (-20); private const int LWA_ALPHA = 0; [DllImport("user32", EntryPoint =…
Qt 不规则窗体 – 鼠标点击穿透 qt实现鼠标穿透,如果要被穿透窗口只有一层,也即没有嵌套窗口,直接只用对子窗口使用setAttribute (Qt::WA_TransparentForMouseEvents,true);就ok,意味着鼠标事件让父窗口响应. 如果要穿透的窗口含有嵌套窗口,那么接着往下看 快速使用 /////////////////////////////////////////////////////////////// #ifdef Q_OS_LINUX  XShapeCo…
先看一下鼠标穿透的效果: 可以看到Form1这个程序虽然遮在了桌面的上面,但是我们还可以在窗体上点击桌面上的必应词典和网易邮箱大师,好像这个叫“Form1”的窗口被“穿透”一样. winform版本: 1.设置TransparencyKey=BackColor=control颜色,鼠标会穿透窗体 this.painel.BackColor = System.Drawing.SystemColors.Control;   //这里的Painel是一个System.Windows.Forms.Pan…
C#使用Windows API实现桌面上的遮罩层(鼠标穿透) C#实现实现桌面上的遮罩层(鼠标穿透)主要通过一下几个API函数来实现:GetWindowLong,SetWindowLong,SetLayeredWindowAttributes.其中有一个Windows 消息 WS_EX_TRANSPARENT 比较重要,它实现了鼠标穿透的功能. 下面来看看完整的实现代码: using System; using System.Drawing; using System.Windows.Forms…
在初始化中使用下面两行代码 ModifyStyleEx(0, WS_EX_LAYERED); ::SetLayeredWindowAttributes(m_hWnd, RGB(1, 255, 0), 100, LWA_COLORKEY);       //set color transparent,指定透明的颜色 然后在OnEraseBkgnd或者OnPaint中 CRect rect; this->GetClientRect(&rect); dc.FillSolidRect(rect, R…
一.关于起因 前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. VB中默认是没有鼠标移出事件响应的,而这个事件其实在项目开发中,实用性很强,很多时候需要在鼠标移出窗体或控件时做些事情:没有这个事件会感觉很费力: 今天我所说的实际案例就是,在窗体上,设计一个SplitterBar控件,窗体的最终用户使用这个控件可以在运行程序时任意调整其内部控件大小. 二.修改CHo…
作者: 狐狸家的鱼 Github: 八至 1.防止鼠标穿透 MouseArea{ anchors.fill: parent; onClicked: {}; onReleased: {}; onPressed: {}; } 2.允许穿透,控件增加enable属性…
无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?下面介绍一种方法,通过以下几个步骤即可实现: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 2.实现WM_NCLBUTTONDOWN,发送窗体拖曳变化的消息 具体阐述如下: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 参考代码如下: LRESULT CUserForm::OnNcHitTest(CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CRect rect; Get…