我在程序中新开启一个进程后,拖动这个进程的窗口,会出现类似这样的现象。如图

解决方案 »

  1.   

    那是你的成功占用CPU太高了,系统没时间来刷新界面
    想办法降低CPU占用率你的分很特别,41
      

  2.   

    会不会是因为我这个进程是子进程的关系?
    创建代码: const CString fileName(_T("F:\\CrystalRepoPrint\\CreateProcess.exe"));
    const CString arguments(_T(""));
    CString commandLine = fileName+_T(" ")+arguments;   STARTUPINFO startupInfo = { sizeof(startupInfo) };
    startupInfo.dwFlags = STARTF_FORCEONFEEDBACK; DWORD dwCreateFlag = 0;
    PROCESS_INFORMATION processInfo; if (CreateProcess( 
    NULL, 
    const_cast<LPWSTR>(commandLine.GetString()), 
    NULL, 
    NULL, 
    FALSE, 
    dwCreateFlag, 
    NULL, 
    NULL, 
    &startupInfo, 
    &processInfo )
       )
    {
    WaitForSingleObject(processInfo.hProcess, INFINITE);
    CloseHandle(processInfo.hThread);
    CloseHandle(processInfo.hProcess);
    }
    @VisualEleven
    是的,在桌面上@shenyi0106
    能稍微详细说一下吗?好像有点无从下手
    因为结贴后会返回一半分,所以发帖发奇数分比较好
      

  3.   

    你给的代码片段没发现什么问题,
    在你出现重叠现象时,看看你的"任务管理器中”的CPU 使用时多少?
      

  4.   

    我测试了1分钟。CPU最高不过20%,双核的
      

  5.   

    把这个语句删除 
    //WaitForSingleObject(processInfo.hProcess, INFINITE);
    再试试。
    祝你好运!
      

  6.   

    @Topsupper
    谢谢,问题暂时解决了。没有重叠现象了。
    但另外出现的一个问题就是,可以操作主程序上的按钮了,也就意味着我可以开多个相同的进程
      

  7.   

    在你的函数里面开始处增加如下代码static bool bRun=false;
    if(bRun == true)
    {
    MessageBox("哈哈,已经运行了一个进程,不再创建了。");
    return
    }
    bRun=true//或者直接把按钮置灰。不知能否解决你的问题。