Bootstrap

[AHK V2]AHK能取消正常窗口的双击标题栏最大化事件吗?

问题:

AHK能取消正常窗口的双击标题栏最大化事件吗?

解答:

AutoHotkey (AHK)是一个强大的脚本语言,可以用来自定义键盘快捷键、鼠标操作等。如果你想阻止双击Windows标题栏进行最大化操作,你可以编写一个脚本来拦截这个动作。
以下是一个用AutoHotkey v2写的简单示例,用于阻止双击标题栏最大化窗口:

源代码:

MyGui := Gui()
MyGui.Opt("+Resize")
MyGui.Add("Text",, "Please enter your name:")
MyGui.AddEdit("vName")
MyGui.Show("w200 h200")

OnMessage( WM_NCLBUTTONDBLCLK := 0x00A3, OnNcLbuttonDblclk )

OnNcLbuttonDblclk(wParam, lParam, msg, hwnd) {
    tooltip "双击不能最大化了"
    return 0
}

 这段脚本首先定义了消息拦截,然后创建了一个函数OnNcLbuttonDblclk 来处理WM_ NCLBUTTONDBLCLK事件。当双击标题栏时,这个函数会被调用,并且通过返回0来阻止窗口最大化的默认行为。
请注意,这个脚本需要在AutoHotkey中运行,并且可能需要根据你的具体需求进行调整。

扩展知识:

WM_NCLBUTTONDBLCLK    

当用户在光标位于窗口的非工作区内时双击鼠标左键时发布。

其他相关消息(详见: List-of-windows-messages - aldeid):

WM_NCCREATE = 0x81
WM_NCDESTROY = 0x82
WM_NCCALCSIZE = 0x83
WM_NCHITTEST = 0x84
WM_NCPAINT = 0x85
WM_NCACTIVATE = 0x86
WM_GETDLGCODE = 0x87
WM_NCMOUSEMOVE = 0xA0
WM_NCLBUTTONDOWN = 0xA1
WM_NCLBUTTONUP = 0xA2
WM_NCLBUTTONDBLCLK = 0xA3
WM_NCRBUTTONDOWN = 0xA4
WM_NCRBUTTONUP = 0xA5
WM_NCRBUTTONDBLCLK = 0xA6
WM_NCMBUTTONDOWN = 0xA7
WM_NCMBUTTONUP = 0xA8
WM_NCMBUTTONDBLCLK = 0xA9

;