如何在 AutoHotKey 中从 DDL 制作菜单下拉菜单

How to make menu dropdown from DDL in AutoHotKey

VBA 中,可以通过以下代码将 ComboBox 添加到 show/dropdown 其列表中。

ComboBox1.DropDown

如何在 AutoHotKey 中制作 DDL 下拉菜单?

在 AHK 中,您必须使用 SendMessage 手动发送控制消息,消息 ID 为 0x014F(即 CB_SHOWDROPDOWN 的值),使用以下行:

SendMessage, 0x014F, 1, , , ahk_id %controlHwnd% ; CB_SHOWDROPDOWN = 0x014F

要隐藏下拉菜单,只需将 1 更改为 0,如下所示:

SendMessage, 0x014F, 0, , , ahk_id %controlHwnd% ; CB_SHOWDROPDOWN = 0x014F

此控件消息适用于 DropDownListComboBox 控件。

注意:在 AHK 中使用 SendMessage 时,最好添加一条注释来标识发送的消息,以防止以后抓耳挠腮。

说明

大多数编程语言(例如 VBA)都包含超出 AutoHotKey 主要关注范围的语法糖。 VBA 中的行 ComboBox1.DropDownComboBox1 引用的控件发送 CB_SHOWDROPDOWN 控制消息。此控制消息中的值是一个布尔值,用于控制是显示 (TRUE) 还是隐藏 (FALSE) 下拉菜单。

CB_SHOWDROPDOWN 是一个无符号整数,它的值(连同其他命令消息)可以从 Windows SDK 中提取。对于这个特定的控制消息,它是从 winuser.h file as indicated on the control message reference page here.

中提取的

最小工作示例

#NoEnv  ; Recommended for new scripts
SendMode Input  ; Recommended for new scripts
#SingleInstance Force ; ensures only one instance running

; AUTO-EXECUTE SECTION
; "hwndhColorChoice" stores the AHK control ID in the variable "hColorChoice"
Gui, Add, ComboBox, vColorChoice hwndhColorChoice, Red|Green|Blue|Black|White
Gui, Show
Return ; end auto-execute section


; Press F1 to show combo box options
F1::SendMessage, 0x014F, 1, , , ahk_id %hColorChoice% ; CB_SHOWDROPDOWN = 0x014F

; Exit program when GUI is closed
GuiClose:
GuiEscape:
ExitApp

命令参考: