Rod*_*ddy 3 delphi winapi postmessage tmenuitem
在我的Delphi表单的OnShow方法中,我确定在打开表单后必须自动打开一个对话框 - 我应该可以通过模拟menuitem上的点击来完成此操作.
但是,调用menuitem.Click会在主窗体打开之前显示对话框 - 这不是我想要的.
我希望这应该做我想要的,但我找不到要通过"wparam"将点击发送到我的menuitem的参数.
PostMessage(handle, WM_COMMAND, wparam, 0)
Run Code Online (Sandbox Code Playgroud)
在MSDN文档WM_COMMAND谈IDM_*标识符,但如何出现在德尔福?
(我知道这是一个非常古老的问题,但尽管在某种程度上得到了解决,但真正的问题确实没有得到解答.)
-
'TMenuItem'的命令项标识符位于Command属性中.根据WM_COMMAND的文档,'wParam'的高位字是'0',低字是菜单标识符;
PostMessage(Handle, WM_COMMAND, MakeWParam(MyMenuItem.Command, 0), 0);
Run Code Online (Sandbox Code Playgroud)
或者干脆;
PostMessage(Handle, WM_COMMAND, MyMenuItem.Command, 0);
Run Code Online (Sandbox Code Playgroud)
使用弹出菜单项会略有不同:VCL使用不同的实用程序窗口处理弹出菜单的消息.全局PopupList变量在其Window属性中具有它的句柄;
PostMessage(PopupList.Window, WM_COMMAND, MyPopupMenuItem.Command, 0);
Run Code Online (Sandbox Code Playgroud)