回 帖 发 新 帖 刷新版面

主题:新手问有关debug assertion failed的问题

执行程序的时候会跳出debug assertion failed这样的提示框。
程序很简单,只是在
BOOL CText2Dlg::OnInitDialog()
{
    m_EDIT1=m_EDIT2=2;
    m_SPIN.SetRange(0,111);
    UpdateData(FALSE);
    
    就添加了那么几句话。
    
    然后void CText2Dlg::OnChangeEdit1() 
{
[color=FF0000]    UpdateData();[/color]
    m_EDIT2=m_EDIT1;
    UpdateData(FALSE);
    就这么几句话
    UpdateData函数去掉就不报错了。不知道为什么,新手,请大家指教一下

回复列表 (共2个回复)

沙发

你得了解下MFC内置的DDE机制(其实不仅是MFC会用到),即控件界面与数据的绑定及交互机制。你将一个控件(如CEdit)与一个成员变量绑定后,你调用UpdateData(TRUE)后界面数据将由DDE传递给改成员变量;当你调用UpdateData(FALSE)后,成员变量的数据由DDE传递给该控件界面并自动更新。你的问题不在于加不加UpdataData;而在于你对UpdateData的理解和你代码所在的位置是否合理。

板凳

谢谢回答,这个我是按照书上的例题写的。我在理解理解,书上说的太简单了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册