c++ OnTimer不是线程阻塞的么?

void CMulMonitorTraceView::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和或调用默认值

::MessageBox(0, L"", L"", 0);
return;
}
设置好定时器后,这个MessageBox会不停的弹出,不需要点击ok。
如果在while循环内,是需要点击ok再弹出下一个MessageBox。
如果我需要在OnTimer内部点击ok后,再弹出下一个MessageBox该怎么做呢?

ontimer 是系统回调的函数 只要你注册了 到时间系统就会运行这个函数 所以会出现你的这个现象 除非你的主线程已经被阻塞无法响应系统的回调

OnTimer是消息队列事件,触发了,就调用,但是不会阻塞,消息循环继续下一个消息的处理。

每隔一段时间都会触发一次,不会受到其他的影响

可以自己加布尔值进行控制啊,判断messageBox的返回值,如果点击OK,设置布尔值为true,下次才会再次弹出消息框

“如果我需要在OnTimer内部点击ok后,再弹出下一个MessageBox该怎么做呢?“
→你需要在OK的响应函数中调::MessageBox(0, L"", L"", 0);