; 全是bug,方法仅供参考
; -0xC00000 删除标题栏,+E0x000800A8鼠标穿透
Gui +HwndGuiID +E0x000800A8 -0xC00000 AlwaysOnTop  ; +E0x00000020
Gui Add, Text, , 测试悬浮穿透
Gui Show, w240 h200, 窗口
WinSet, Transparent, 150, ahk_id %GuiID%
; WinSet, ExStyle, +0x20, ahk_id %GuiID%   ; 也可以让指定窗口加上样式【非Gui】
Return

; 官方扩展样式Exstyle文档
; https://learn.microsoft.com/zh-cn/windows/win32/winmsg/extended-window-styles

; 普通style 文档
; https://learn.microsoft.com/zh-cn/windows/win32/winmsg/window-styles

; WS_EX_TRANSPARENT
; 0x00000020
; 在绘制同一线程) 创建的窗口下方的同级 (之前,不应绘制窗口。 窗口显示为透明,因为已绘制基础同级窗口的位。
; 若要在不使用这些限制的情况下实现透明度,请使用 SetWindowRgn 函数。

/*  ; Gui -E0x000800A8 可以让Gui可移动,但是会失去穿透效果
~LButton::
Gui -E0x000800A8
WinSet, Transparent, 150, ahk_id %GuiID%
; SendMessage, 0xA1, 2, , , ahk_id %GuiID%
Return
*/

Esc::ExitApp

WM_LBUTTONDOWN(wParam, lParam, msg, hwnd) {
    static init := OnMessage(0x0201, "WM_LBUTTONDOWN")
    PostMessage, 0xA1, 2,,, A
}

F1::
WinGetPos, X, Y, W, H, ahk_id %GuiID%
PostMessage, 0xA1, 2,,, ahk_id %GuiID%
WinMove, ahk_id %GuiID%,, 100, 200
Return

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。