【问题标题】:Minimize Delphi Application with Live Popup Menu使用实时弹出菜单最小化 Delphi 应用程序
【发布时间】:2009-12-07 20:15:57
【问题描述】:

我正在尝试在计时器中运行它:

Application.Minimize;
ShowWindow( Application.handle, SW_HIDE );

它一直存在于代码中,我们刚刚发现当您激活弹出菜单时它不起作用,它不会最小化 MDI 父窗口。

我想如果我可以在运行此代码之前关闭弹出菜单,那么我会没事的。问题是,这段代码在 MDI Parent 中,我不知道当前弹出菜单在哪里。它是否是另一个表单工具栏的一部分并不重要,这个表单工具栏,右键单击的产品或空格键旁边的那个看似无意义的键。

那么,有没有办法在我的整个程序中隐藏活动的弹出菜单?

另外,如果有比我用来最小化的代码块更好的代码来规避这个问题,那也是很棒的信息。

【问题讨论】:

  • 我创建了一个带有弹出菜单的简单项目,并将表单的弹出菜单设置为指向该弹出菜单。我运行我的应用程序,右键单击表单以激活弹出菜单,但是当计时器触发您的代码时,应用程序仍然最小化。你确定你在某个地方没有“showModal”吗?
  • 是的,我确实有一个显示模式。当应用程序最小化时,会弹出另一个窗体,这是程序的登录窗体。除非某处有弹出菜单,否则一切正常。

标签: delphi minimize popupmenu


【解决方案1】:

要关闭弹出菜单,您可以使用

  if GetCapture <> 0 then
    SendMessage(GetCapture, WM_CANCELMODE, 0, 0);

在您尝试最小化表单之前在您的代码中。

【讨论】:

  • 酷! GetCapture API 太棒了!
猜你喜欢
  • 2010-09-13
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多