我正在研究MFC应用程序(VS2017)。
在那我有一个秒钟计时器。在OnTimer()
例程和我的业务逻辑中,我调用UpdateData(FALSE)
向UI显示一些运行时信息。
此外,我必须从用户输入事件处理程序中的UI获取一些用户输入,我调用UpdateData(TRUE)
并在OnTimer
例程中检查其返回值。
问题是因为计时器在这里是一个独立的实体。即使我已经在UpdateData(FALSE)
内部OnTimer
守护了UpdateData(FALSE)
,但是正在执行空白用户输入,这会通过调用assert来崩溃程序。
/***SAMPLE Problem CODE****/`
void abc::OnEnUserInput()
{
IsvalidInput = UpdateData(TRUE);
}
void abc::OnTimer(UINT_PTR nIDEvent)
{
if (IsvalidInput == true)
{
UpdateData(FALSE);
}
}
任何帮助将不胜感激!!! 感谢。
答案 0 :(得分:0)
早些时候得到了我的解决方案,但是由于忙碌的时间表没有时间分享它。
为了避免此问题,我打开了另一个对话框来接收用户输入,因为UpdatedData(FALSE)
中的OnTimer()
位于后台对话框中,因此子对话框UpdateData(TRUE)
中的用户输入不会进行背景为UpdatedData(FALSE)
。