在VBA
中,可以通过以下代码制作一个组合框以显示/下拉其列表。
ComboBox1.DropDown
如何在AutoHotKey
中像这样使DDL下拉菜单?
答案 0 :(得分:1)
在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
向CB_SHOWDROPDOWN
引用的控件发送ComboBox1
控制消息。此控制消息中的值是一个布尔值,用于控制是显示(TRUE
)还是隐藏(FALSE
)下拉菜单。
CB_SHOWDROPDOWN
是一个无符号整数,可以从Windows SDK中提取其值(以及其他命令消息)。对于此特定控制消息,它是从winuser.h
文件中提取的,如控制消息参考页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