我调用UpdateData()这个函数时总是出现一大版错误,郁闷呀。(在视图里,不是对话框),请高手指教小弟。谢谢!!

解决方案 »

  1.   

    请看:
    void CCourseView::OnSave() 
    {
    // TODO: Add your control notification handler code here

    UpdateData(TRUE);
    this->m_ID.TrimLeft();
    this->m_ID.TrimRight();
    if(this->m_ID == "")
       MessageBox("编号不能为空");
    }
    程序到第2句就出错了。就是vc那种一大版错误。很郁闷
      

  2.   

    是这样提示的:
     Debug  Assertion  Failed! program:F:\demo\debug\demo.exe
     File:dlgdata.cpp
     Line:624
     
     For infomation on how your program can cause an assertion 
     failure ,see the visual c++ documentation on asserts(prss retry to debug the application )
       终止          重试        忽略  三个是按钮
      

  3.   

    你的 OnSave() 函数最早是在哪里调用的?
      

  4.   

    检查一下你的ddx是否正确,或贴出来看看
      

  5.   

    DDX_Control(pDX, IDC_LIST, m_List);
    DDX_Text(pDX, IDC_ID, m_ID);
    DDX_Text(pDX, IDC_NAME, m_Name);
    DDX_CBString(pDX, IDC_PRO, m_Pro);
    DDX_Text(pDX, IDC_STATUS, m_Status); 分别为:列表 、编辑框、编辑框、组合框、边疆框 功能: 显示学生信息、  学生编号、学生姓名、学生专业、学生状况;
      

  6.   

    我也感觉你ddx时的数据类型不匹配.你应该细心检查一下.
      

  7.   

    没错呀,代码打包发过来我给你看[email protected]
      

  8.   

    谢谢!csdn_cht(欣欣兽)大哥 搞定了以后就回到这 [email protected]
      

  9.   

    你的问题不在于ddx中,这是因为你动态创建视的时候,OnInitialUpdate(),不会被自动调用的缘故,OnInitialUpdate()如果没有执行的话,那么ddx时控件变量的窗口句柄就是0x00000000,所以会出错。你只要添加一个创建完视后的消息映射,在其中添加一句:OnInitialUpdate()就没问题了。我是在你的CCourseView 中响应WM_SHOWWINDOW.然后在
    OnShowWindow()中添加了这句,没问题。
      

  10.   

    非常感谢csdn_cht(欣欣兽)大哥,我已经下回代码了。:)向你学习、努力打造中国软件产业。呵呵!
      

  11.   

    csdn_cht(欣欣兽)大哥,分已经到你的账户上去了 呵呵!!