当前位置: 移动技术网 > IT编程>开发语言>c# > C# 鼠标穿透窗体功能的实现方法

C# 鼠标穿透窗体功能的实现方法

2019年07月18日  | 移动技术网IT编程  | 我要评论
同样该功能需要加载命名空间 using system.runtime.interopservices; 复制代码 代码如下:private const uint ws

同样该功能需要加载命名空间

using system.runtime.interopservices;

复制代码 代码如下:

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 = "setwindowlong")]
        private static extern uint setwindowlong(
        intptr hwnd,
        int nindex,
        uint dwnewlong
        );

        [dllimport("user32", entrypoint = "getwindowlong")]
        private static extern uint getwindowlong(
        intptr hwnd,
        int nindex
        );

        [dllimport("user32", entrypoint = "setlayeredwindowattributes")]
        private static extern int setlayeredwindowattributes(
        intptr hwnd,
        int crkey,
        int balpha,
        int dwflags
        );

        /// <summary>
        /// 设置窗体具有鼠标穿透效果
        /// </summary>
        public void setpenetrate()
        {
            getwindowlong(this.handle, gwl_exstyle);
            setwindowlong(this.handle, gwl_exstyle, ws_ex_transparent | ws_ex_layered);
            setlayeredwindowattributes(this.handle, 0, 100, lwa_alpha);
        }

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网