我在以下位置上传了一个VS2010项目。运行全屏应用程序后,应运行此测试应用程序。一旦运行,您有2秒钟的时间点击您的全屏应用程序。它使用全屏应用程序(应该是具有焦点的最后一个窗口)创建2个无模式对话框作为对话框的所有者。显示一个对话框,隐藏,显示第二个对话框,隐藏,然后在一个循环中再次显示第一个对话框。我发现当第二次显示第一个对话框时,任务栏会弹出。我花了4个痛苦的日子试图了解这里发生的事情,我非常渴望得到一些帮助。
我收到了一些帮助,建议当我调用DestroyWindow来隐藏对话框时,Windows会将焦点放在“某处” - 在我的情况下是任务栏。以前当我问这个问题时,我没有使用全屏应用程序作为我的Windows的所有者。我本以为焦点应该回到主人窗口?我还尝试在我的对话框上调用DestroyWindow之前在全屏应用程序上调用SetFocus()和SetForegroundWindow() - 但这似乎导致任务栏每次出现而我根本不想要它。
请帮忙!