0

在某些情况下,什么会阻止对话框以模态方式显示在前台?

一个进程 (KeePass.exe) 拥有一个隐藏窗口。全局快捷键 (CTRL+A) 在前台显示一个对话框。这是使用 DoModal 方法完成的。它有效。

但是,在某些我不知道的情况下,会发生以下情况:窗口出现在任务栏中,并且只有在单击它之后才会显示。我为 KeePass 创建了一个插件,它覆盖了 WndProc 并等待某个 WM_COPYDATA 消息。如果此消息到达,则使用 DoModal 显示对话框。但是,在这种情况下,它只显示在任务栏中,而不显示在前台。

WM_COPYDATA 消息是从不同的进程发送的,但这应该没关系吧?这可能是什么原因?

我为此苦苦挣扎了很长时间,这太奇怪了,甚至很难解释这个问题。

我尝试在显示对话框之前发出 SetForegroundWindow(hKeePassWindow) 但没有变化。

4

0 回答 0