我正在做一個測量系統,我在我的程序中有while while循環。在循環中,它正在檢查是否有任何電機正在移動,因爲它需要在做任何事情之前到達目標位置。MFC雖然循環
在進行測量時,假設告訴我進行測量需要多長時間。
但是,只要它在do while循環中運行,我的所有定時器功能就會停止,就好像它們被置於睡眠模式一樣。
有沒有其他的方法可以實現呢?如果有,請幫助我。
任何幫助將不勝感激。
SetTimer(TIMERECHO, 1000, NULL);
BOOL bMoving = FALSE;
do
{
if (IsMoving(ID, NULL, &bMoving))
GetPosition();
} while (bMoving);
void CLHMDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case TIMERECHO:
UpdateData(FALSE);
m_Seconds++;
m_TimerEcho.Format(_T("Total time: %ds"), m_Seconds);
break;
}
CDialogEx::OnTimer(nIDEvent);
}
我該怎麼做?對不起,我是MFC編程的初學者。 – Ashton
一個基於回調的定時器仍然需要一個消息循環 - 回調只是由'DefWindowProc'調用。 –
不,如果它是舊的MM定時器的後代版本之一,則「回調」定時器不需要消息循環,如http://msdn.microsoft.com/en-us/library/windows /desktop/ms682485%28v=vs.85%29.aspx – MichaelH