软件正在执行时,界面上显示打圈圈,等待任务执行完成

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haimianjie2012/article/details/84103555

1.BeginWaitCursor()是CCmdTarget类的函数

  函数原型:void   BeginWaitCursor();  
  功能简介:本函数用于显示沙漏光标。调用本函数显示沙漏光标,告诉用户系统正在运行,繁忙。
  注意:在不是处理单个消息时,BeginWaitCursor()可能不像其它函数那样有效,例如:OnSetCursor()的处理也能改变光标形状。  
2.函数EndWaitCursor可以恢复此前的光标。
--------------------- 
作者:行者无疆帆 
来源:CSDN 
原文:https://blog.csdn.net/yf0811240333/article/details/38760003 
版权声明:本文为博主原创文章,转载请附上博文链接!

SetCapture():

该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。

当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉,否则别的线程想调用就会失败。记住:SetCapture()和ReleaseCapture()必须成对呈现。

        BeginWaitCursor();
		SetCapture();
		while(!m_ImgShow.m_ltCurCorImg.empty()&&!m_ImgShow.m_bganyu)
		{
			num++;
			CLog::GetInstance()->WriteLog(_T("正在保存数据,num:%d"),num);
			Sleep(50);
		}
		if (m_vImgBig.size()!=0)
		{
			CLog::GetInstance()->WriteLog(_T("保存多图干预数据m_vImgBig"));
			m_correctMultiImgs.SaveImgVectorLayers(m_vImgBig);
		}
		if (m_vImgBig.size()!=0)
		{
			CLog::GetInstance()->WriteLog(_T("保存多图干预数据m_vImgSmall"));
			m_correctMultiImgs.SaveImgVectorLayers(m_vImgSmall);
		}
		
		EndWaitCursor();
		ReleaseCapture();

猜你喜欢

转载自blog.csdn.net/haimianjie2012/article/details/84103555