gpt4 book ai didi

delphi - 发送 WM_COMMAND 到 TMenuItem

转载 作者:行者123 更新时间:2023-12-03 15:47:24 26 4
gpt4 key购买 nike

在我的 Delphi 表单的 OnShow 方法中,我确定打开表单后必须自动打开一个对话框 - 并且我应该能够通过模拟单击菜单项来完成此操作。

但是,调用 menuitem.Click 在主窗体打开之前弹出对话框 - 这不是我想要的。

我希望这应该能做到我想要的,但我找不到要为“wparam”传递哪些参数来将点击发送到我的菜单项。

PostMessage(handle, WM_COMMAND, wparam, 0)

MSDN WM_COMMAND docs谈论 IDM_* 标识符,但它在 Delphi 中是如何出现的?

最佳答案

(我知道这是一个非常古老的问题,但尽管以某种方式得到了解决,但真正的问题确实没有得到解答。)
--

“TMenuItem”的命令项标识符位于 Command 中属性(property)。根据WM_COMMAND的documentation 'wParam' 的高位字为 '0',低位字为菜单标识符;

PostMessage(Handle, WM_COMMAND, MakeWParam(MyMenuItem.Command, 0), 0);

或者简单地;

PostMessage(Handle, WM_COMMAND, MyMenuItem.Command, 0);


对于弹出菜单项,会有细微的差别:VCL 使用不同的实用程序窗口处理弹出菜单的消息。全局PopupList变量的句柄位于其 Window 中属性(property);

PostMessage(PopupList.Window, WM_COMMAND, MyPopupMenuItem.Command, 0);

关于delphi - 发送 WM_COMMAND 到 TMenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com