如何将WM_COMMAND消息发送给Delphi中的TMenuItem实现长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计184个文字,预计阅读时间需要1分钟。
在Delphi表单的OnShow方法中,我需要在打开表单后自动打开一个对话框。我可以通过模拟点击模拟menuitem来实现这个操作。但是,调用menuItem.Click会在主窗口体显示对话框之前打开对话框。
但是,调用menuitem.Click会在主窗体打开之前显示对话框 – 这不是我想要的.
我希望这应该做我想要的,但我找不到要通过“wparam”将点击发送到我的menuitem的参数.
PostMessage(handle, WM_COMMAND, wparam, 0)
MSDN WM_COMMAND docs谈论IDM_ *标识符,但它在Delphi中是如何出现的?
也许您可以尝试在OnActivate事件中打开对话框?我不确定OnActivate是否会在显示表单时再次被触发但是如果它可以使用:
procedure TForm1.FormActivate(Sender: TObject); begin Form2.ShowModal; Self.OnActivate := nil; end;
本文共计184个文字,预计阅读时间需要1分钟。
在Delphi表单的OnShow方法中,我需要在打开表单后自动打开一个对话框。我可以通过模拟点击模拟menuitem来实现这个操作。但是,调用menuItem.Click会在主窗口体显示对话框之前打开对话框。
但是,调用menuitem.Click会在主窗体打开之前显示对话框 – 这不是我想要的.
我希望这应该做我想要的,但我找不到要通过“wparam”将点击发送到我的menuitem的参数.
PostMessage(handle, WM_COMMAND, wparam, 0)
MSDN WM_COMMAND docs谈论IDM_ *标识符,但它在Delphi中是如何出现的?
也许您可以尝试在OnActivate事件中打开对话框?我不确定OnActivate是否会在显示表单时再次被触发但是如果它可以使用:
procedure TForm1.FormActivate(Sender: TObject); begin Form2.ShowModal; Self.OnActivate := nil; end;

