发现了一个VC的bug?关于界面弹出时间较长的问题
很常见的一个程序,主界面(界面1)上有一个弹出界面(界面2),在弹出界面上有个按钮,再弹出一个界面(界面3)然后返回。
一般来说,界面1 弹出界面2, 界面2 弹出界面3, 都是一对一的。只有关掉界面3才会回到界面2。而且最后光标只能在界面3上面。
但现在有个问题。
在按钮按下后,因为要去数据库查询,所以,最后的界面3 出来之前,会有一段较长的等待时间。
在这个等待的时间的时候,如果鼠标点击其他的程序,然后再回来点击界面2, 等到界面3出现的时候,发现,界面2 和界面3的关系变了,光标可以移动到界面2上,界面2可以再通过这种方法调出无数个界面3出来。这下搞大了。
这个程序很普通呢,大家都应该有碰到过吧?有发生同样的问题的么?
From2 Source code :
void CFrom2Dlg::OnBtnOk()
{
//Query DB
.... //这里花了很多时间取数据
CForm3Dlg Dlg( );
if( Dlg.DoModal() == IDOK ) {
...
}
}