如何在 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
此控件消息适用于 DropDownList
和 ComboBox
控件。
注意:在 AHK 中使用 SendMessage
时,最好添加一条注释来标识发送的消息,以防止以后抓耳挠腮。
说明
大多数编程语言(例如 VBA)都包含超出 AutoHotKey 主要关注范围的语法糖。 VBA 中的行 ComboBox1.DropDown
向 ComboBox1
引用的控件发送 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
命令参考:
在 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
此控件消息适用于 DropDownList
和 ComboBox
控件。
注意:在 AHK 中使用 SendMessage
时,最好添加一条注释来标识发送的消息,以防止以后抓耳挠腮。
说明
大多数编程语言(例如 VBA)都包含超出 AutoHotKey 主要关注范围的语法糖。 VBA 中的行 ComboBox1.DropDown
向 ComboBox1
引用的控件发送 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