MFC CWaitCursor 的疑问 在MFC中,要出现等待光标,定义CWaitCursor类的对象即可,可是这个时候的问题是,虽然光标变成了沙漏型,但依然可以点击按钮等各种操作,一般情况下,当光标变成沙漏形状,鼠标点击任何东西都是不应该会响应的,直到那个造成等待的操作执行完成。请各位前辈指点,谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在函数的开头定义CWaitCursor waitcursor;中间用了waitcursor.Restore(); BOOL SucFlag = FALSE; // 返回确认信息标记 MSG msg; DWORD dwStartTime = 0, dwEndTime = 0; dwStartTime = dwEndTime = GetTickCount(); while( (dwEndTime - dwStartTime) < 3000 ) { DWORD len; BYTE retChar = 0; ReadFile(m_hCom, &retChar, 1, &len, &m_osRead); if( retChar == 0x59 ) // 返回确认帧 { //DWORD ttt; //GetOverlappedResult(m_hCom,&m_osRead,&ttt,TRUE); SucFlag = TRUE; break; } while( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) { ::TranslateMessage( &msg ); ::DispatchMessage( &msg ); } waitcursor.Restore(); dwEndTime = GetTickCount(); } 没有必然联系。一般是因为无法响应,才把光标变成沙漏。忙完了再把光标变回来。你可以在响应某消息时设沙漏,干点别的再设回来,然后返回,这期间鼠标点不动。如果你要退出消息响应,那就要自己做了,比如菜单变灰等。不然即使鼠标不点,人用键盘还是可以触发WM_COMMAND的 vs2010使用wtl失败 基础版的同志们,谁都买了世博门票? 为什么char型和int型可以通用呢? 请问该如何学图像处理的2值化方向的知识 VC++ 引用的几个问题 winpcap3.1安装异常!!! 如何判断程序已经启动过了? Outlook 不让我看附件, 怎么办? 如何在任何时候拖动窗口标题移动窗口时都显示窗口内容(即使去掉'桌面右键'-'属性'-'效果'里的'拖动窗口时显示窗口内容'选项!?? 请问:哪里可以找到 Inside the C++ Object Model 的电子版? 关于《深入浅出mfc》 MFC用什么方法才能改变鼠标在窗口中的样子啊?
中间用了waitcursor.Restore();
BOOL SucFlag = FALSE; // 返回确认信息标记
MSG msg;
DWORD dwStartTime = 0, dwEndTime = 0;
dwStartTime = dwEndTime = GetTickCount();
while( (dwEndTime - dwStartTime) < 3000 )
{
DWORD len;
BYTE retChar = 0;
ReadFile(m_hCom, &retChar, 1, &len, &m_osRead);
if( retChar == 0x59 ) // 返回确认帧
{
//DWORD ttt;
//GetOverlappedResult(m_hCom,&m_osRead,&ttt,TRUE);
SucFlag = TRUE;
break;
}
while( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
waitcursor.Restore();
dwEndTime = GetTickCount();
}
你可以在响应某消息时设沙漏,干点别的再设回来,然后返回,这期间鼠标点不动。
如果你要退出消息响应,那就要自己做了,比如菜单变灰等。不然即使鼠标不点,人用键盘还是可以触发WM_COMMAND的