昨天写代码,在UpdateData()之后调用CDialog::OnOk()程序立刻崩了.
我的本意是点击确定按钮之后把数据保存起来,然后关闭对话框,奈何,行不通.
当时不知道,尝试了各种办法:CDialog:OnCancel()/CDialog:Close()/CDialog:DestoryWindow()/SendMessage()......
气得我当时就想来一个ExitProcess(),调试的时候中断,跳到了SDK的代码里,异常在一处ASSERT,可笑的是居然有这样一个注释:
//Call UpdateData() ?
居然能有人未卜先知,知道我要断在这个地方,难道又是什么MFC的潜规则???
K,我不关了,我点另一个按钮关行吧.
今天心血来潮,把所有EDIT的OnChange事件全写了一句话UpdateData();按钮的单击事件不用UpdateData();
这下没问题了.
看来这个UpdateData();还真不好用,或者说是MFC的一个缺陷???