以编程方式单击模态窗口父级中的工具栏按钮

时间:2014-02-27 11:03:02

标签: c++ winapi

我有一个通过API挂钩到另一个应用程序的应用程序。我的应用程序启动了一个模态窗口,可以防止按键按照预期到达父按钮。

但是由于API的限制,我需要不时点击其中一个父工具栏按钮(是的,它是一个kludge)。

我想知道在我的应用程序的模态窗口仍处于活动状态时这是否可行?是否可以将所需命令直接发送到父命令队列?

在没有模态窗口的情况下以编程方式单击按钮应该不是问题,可以通过此链接进行操作,例如:http://forums.codeguru.com/showthread.php?307633-How-to-run-a-very-long-SQL-statement。但是每次我必须点击按钮时,我宁愿不必关闭窗口。

虽然第五个答案是我觉得有趣的,因为我认为这可以使命令发送而无需先关闭我的模态窗口。它也感觉有点不那么难看。

1 个答案:

答案 0 :(得分:2)

首先,当显示模态对话框时,它会运行自己的消息泵。因此任何虚假输入消息的尝试都将落在模态对话框消息泵中。这对你没有好处。所以,你必须发送消息而不是假输入。

但是,当显示模态对话框时,将禁用其拥有的窗口。这意味着这些窗口不会响应您发送的任何消息。所以我猜这意味着你可以:

  1. 启用您托管相关工具栏的拥有顶级窗口。
  2. 将消息发送到工具栏按钮。
  3. 再次禁用拥有窗口。
  4. 不是最讨人喜欢的方式,但你确实问过!