我在初始化函数中用createprocess调用程序后主介面却自动隐藏了,怎么解决
BOOL CPDCOPYDlg::OnInitDialog()//初始化函数;
{      。。
      。。
        // TODO: Add extra initialization here
STARTUPINFO si0; //
memset(&si0,0,sizeof(STARTUPINFO));
si0.cb = sizeof(STARTUPINFO);
si0.dwFlags = STARTF_USESHOWWINDOW;
si0.wShowWindow =SW_HIDE;//
PROCESS_INFORMATION pi0; //
        。。
       。。
        if(::CreateProcess(NULL,batFilePath,NULL,NULL,NULL,NULL ,NULL,NULL,&si0,&pi0))// 运行bat
        {。}
}
     但我只要不在初始化中添加就不会,应该怎么解决呢,求指教!

解决方案 »

  1.   

    加个showwindow,或者setfocuse一下
      

  2.   

    你把OnInitDialog里面代码贴全喽。
      

  3.   

    为什么要在初始化中CreateProcess呢?
      

  4.   

    回楼上,因为我这个程序开始阶段就要调用一个bat的外部应用的,所以不得不在初始化中用上CreateProcess,
       另外我发现我在初始化程序中两次调用CreateProcess了,如果我只调用一次,主窗口是会正常显示的,而当我用CreateProcess两次运行bat文件时就会发生主窗口自动隐藏,
    今天我在初始化函数后面加入下列代码强制显示主窗口了,运行的确可以显示主窗口了,但主窗口好像时处于非激活状态,只要这个时候点击主窗口,就提示无响应云云,,,     
        UINT nCmdShow = SW_SHOW;
        if (!IsWindowVisible())
            nCmdShow = SW_SHOW;
        else if (IsIconic())
            nCmdShow = SW_RESTORE;
        ShowWindow(nCmdShow);
        SetForegroundWindow();