Autohotkey 如何在自动热键中从DDL下拉菜单

Autohotkey 如何在自动热键中从DDL下拉菜单,autohotkey,Autohotkey,在VBA中,可以通过下面的代码使组合框显示/下拉其列表 ComboBox1.DropDown 在AHK中,您必须使用消息ID为0x014F(这是CB\u SHOWDROPDOWN)的命令行,手动发送控制消息,如下图所示: SendMessage, 0x014F, 1, , , ahk_id %controlHwnd% ; CB_SHOWDROPDOWN = 0x014F 要隐藏下拉列表,只需将1更改为0,如下所示: SendMessage, 0x014F, 0, , , ahk_id %co

VBA
中,可以通过下面的代码使组合框显示/下拉其列表

ComboBox1.DropDown

在AHK中,您必须使用消息ID为
0x014F
(这是
CB\u SHOWDROPDOWN
)的命令行,手动发送控制消息,如下图所示:

SendMessage, 0x014F, 1, , , ahk_id %controlHwnd% ; CB_SHOWDROPDOWN = 0x014F
要隐藏下拉列表,只需将
1
更改为
0
,如下所示:

SendMessage, 0x014F, 0, , , ahk_id %controlHwnd% ; CB_SHOWDROPDOWN = 0x014F
此控制消息适用于
下拉列表
组合框
控件

注意:在AHK中使用
SendMessage
时,最佳做法是添加一条注释,标识发送的消息,以防止以后划伤头部

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

CB_SHOWDROPDOWN
是一个无符号整数,其值(以及其他命令消息)可以从Windows SDK中提取。对于此特定控制消息,它是从文件中提取的,如控制消息参考页上所示

最低工作示例 命令引用:
#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