推动使用CreateProcess的CPropertySheet应用程序窃取焦点

时间:2015-10-14 04:41:15

标签: winapi visual-c++ mfc

我将EXE实现为MFC CPropertySheet(用于诊断接口),充当主应用程序的服务器进程。主应用程序在启动时启动它,我希望服务器最初是不可见的和背景。

我正在使用CreateProcess(也尝试过WinExec),当进程确实隐藏启动时,它总是在启动时窃取激活(即停用主应用程序),即使在隐身时也是如此。

我已经尝试了很多东西来阻止这种情况发生:

  1. 设置STARTUPINFO参数
  2. 使用服务器中的SWP_NOACTIVATE覆盖OnWindowPosChanging
  3. 使用Create而不是DoModal
  4. 创建CPropertySheet为无模式

    我作为测试嫁接的基于CDialog的进程不会发生这种情况,所以它似乎只是CPropertySheet或实现它的底层Windows公共控件的问题。

    有没有人知道为什么会这样?或者有关尝试诊断激活发生位置的任何提示?我真的很难过。

0 个答案:

没有答案