函数A中:
...
dlg.DoModal(); //dlg是一个从CDialog类派生的类的实例
...//语句A
...函数B中:
...
dlg.EndDialog(IDOK);
...//语句B假设正在执行函数B,那么执行完dlg.EndDialog(IDOK);后,下面执行的是哪一句,请分析一下,我想知道这是以什么机制处理该问题的。
补充,上面的函数B是由定时器调用的。
其实我想了解一下,弹出模式对话框后,消息循环的运行情况,哪些消息还在运行,哪些会被阻塞?
...
dlg.DoModal(); //dlg是一个从CDialog类派生的类的实例
...//语句A
...函数B中:
...
dlg.EndDialog(IDOK);
...//语句B假设正在执行函数B,那么执行完dlg.EndDialog(IDOK);后,下面执行的是哪一句,请分析一下,我想知道这是以什么机制处理该问题的。
补充,上面的函数B是由定时器调用的。
其实我想了解一下,弹出模式对话框后,消息循环的运行情况,哪些消息还在运行,哪些会被阻塞?
解决方案 »
- 手机版视频监控系统设计方案可行性分析
- 已知进程句柄或者ID,如何得到其所有线程的句柄?
- 关于CHtmlEditView(非高手勿进!)
- 高分求助,用HOOK怎样取到应用程序上控件的值
- 类似于windows 查找窗口的list框的问题?
- 新手的问题:accept()调用为何未阻塞?---请各位老大多多指点!
- cbc接分:400/1500
- CFormView是用来干吗的?怎么用啊?
- 我想做把好人,帮大家OCR一下C++ Primer的一部分,想要得举手
- 帮忙:现在用Vc++6.0软件开发完毕,我想制作成多种语言版本,请问该如何做呢?
- 关于声音驱动的一个问题(急!!!)
- 请教OLEDB实现多记录集的访问问题
在dlg.EndDialog(IDOK);处下一断点,运行到此处程序自然停下来,再单步执行就能看到
你是指调试吗?直接在语句A中断不行吗?
实在不行可以在DLG内选断点。
dlg EndDialog后,B就不会被执行,dlg返回到A处,A开始执行。
不知道对不对?
{
ASSERT(::IsWindow(m_hWnd)); if (m_nFlags & (WF_MODALLOOP|WF_CONTINUEMODAL))
EndModalLoop(nResult); ::EndDialog(m_hWnd, nResult);
}
//
// #define IN
// #define OUTWINUSERAPI
BOOL
WINAPI
EndDialog(
IN HWND hDlg,
IN INT_PTR nResult);