如何从AutoHotKey中的DDL进行菜单下拉

时间:2018-12-14 06:13:04

标签: autohotkey

VBA中,可以通过以下代码制作一个组合框以显示/下拉其列表。

ComboBox1.DropDown

如何在AutoHotKey中像这样使DDL下拉菜单?

1 个答案:

答案 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

此控制消息在DropDownListComboBox控件上均有效。

注意:在AHK中使用SendMessage时,最好的做法是添加一条注释,以标识所发送的消息,以防止以后发生刮擦。

说明

大多数编程语言(例如VBA)包含的语法糖超出了AutoHotKey的主要关注范围。 VBA中的行ComboBox1.DropDownCB_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

命令参考: