在下面的事件处理中,为何占击左键后,只能显示20
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
SetCapture();
CButton::OnLButtonDown(nFlags, point);
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->m_counter = 10;
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->UpdateData(FALSE); Sleep(2000);
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->m_counter = 20;
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->UpdateData(FALSE);
}
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
SetCapture();
CButton::OnLButtonDown(nFlags, point);
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->m_counter = 10;
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->UpdateData(FALSE); Sleep(2000);
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->m_counter = 20;
static_cast<Ctest2Dlg *>(AfxGetApp()->m_pMainWnd)->UpdateData(FALSE);
}
你改用非休眠的延时就可以看到效果,如
COleDateTime start_time = COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time = COleDateTime::GetCurrentTime() - start_time;
while(end_time.GetTotalSeconds() <= 2)
{
MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
end_time = COleDateTime::GetCurrentTime() - start_time;
}