开启新进程后,拖动新进程的窗口会出现重叠现象 我在程序中新开启一个进程后,拖动这个进程的窗口,会出现类似这样的现象。如图 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那是你的成功占用CPU太高了,系统没时间来刷新界面想办法降低CPU占用率你的分很特别,41 会不会是因为我这个进程是子进程的关系?创建代码: 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能稍微详细说一下吗?好像有点无从下手因为结贴后会返回一半分,所以发帖发奇数分比较好 你给的代码片段没发现什么问题,在你出现重叠现象时,看看你的"任务管理器中”的CPU 使用时多少? 我测试了1分钟。CPU最高不过20%,双核的 把这个语句删除 //WaitForSingleObject(processInfo.hProcess, INFINITE);再试试。祝你好运! @Topsupper谢谢,问题暂时解决了。没有重叠现象了。但另外出现的一个问题就是,可以操作主程序上的按钮了,也就意味着我可以开多个相同的进程 在你的函数里面开始处增加如下代码static bool bRun=false;if(bRun == true){MessageBox("哈哈,已经运行了一个进程,不再创建了。");return}bRun=true//或者直接把按钮置灰。不知能否解决你的问题。 【在线等】如何在窗口中手工加入工具栏 跪求__计算机实验项目课题!! 如何让控制台程序(Console)在后台运行? GfxOutBarCtrl的问题 SOCKET____重叠I/O 关于多文档对话框,如何如何默认三个子窗体? 你会不会?会的话请教教我:) 一个有关LoadImage的小问题,请指教(不好意思,刚才一个帖写错了) 菜鸟问题:如何在SDI的***App::InitInstance()中调用dlg以实现密码框? 怎样改变ComboBox的背景色?? 无聊散分 3 散分 5
想办法降低CPU占用率你的分很特别,41
创建代码: 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
能稍微详细说一下吗?好像有点无从下手
因为结贴后会返回一半分,所以发帖发奇数分比较好
在你出现重叠现象时,看看你的"任务管理器中”的CPU 使用时多少?
//WaitForSingleObject(processInfo.hProcess, INFINITE);
再试试。
祝你好运!
谢谢,问题暂时解决了。没有重叠现象了。
但另外出现的一个问题就是,可以操作主程序上的按钮了,也就意味着我可以开多个相同的进程
if(bRun == true)
{
MessageBox("哈哈,已经运行了一个进程,不再创建了。");
return
}
bRun=true//或者直接把按钮置灰。不知能否解决你的问题。