定义CEditView的成员变量m_wndEdit创建一个CEditView的写法如下:   
if(!m_EditOutput.Create(NULL,NULL,WS_VSCROLL|ES_MULTILINE|WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),&m_ctSolution,2))
return -1;
  问题是当我进入程序对这个创建好的视图进行字符输入的时候抱错,内存不能为"read";  "0x5f476ca5" 指令引用的 "0x00000000" 内存。该内存不能为 "read"。 
 
  我用CEdit类,而不用CEditView类就完全没有什么问题.CEdit类的成员变量调用Create函数的写法如下:   
 if (!m_EditOutput.Create(WS_VSCROLL|ES_MULTILINE|WS_CHILD|WS_VISIBLE,CRect(0,0,0,0), &m_ctSolution, 2))
return -1;
  -------------------------------------------------------------------------------   
  有人用相同的方法做过类似vc++界面,遇到过这种问题嘛?   

解决方案 »

  1.   

    CEditView m_wndEdit;
    m_wndEdit.GetEditCtrl().Create(NULL,NULL,WS_VSCROLL|ES_MULTILINE|WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),&m_ctSolution,2))//视图类和控件类是两回事 查查MSDN
      

  2.   

    m_wndEdit.Create(NULL,NULL,CEditView::dwStyleDefault,CRect(0,0,100,100),this,WM_USER+200);
      

  3.   

    道理上View是要和Document一起使用的,单独使用需要从CEditView派生出你的CMyEditView,然后重载OnChange响应,否则在edit中键入字符时会出错(在CEditView的OnChange: GetDocument->SetModify())。
      

  4.   

    schlafenhamster的方法是可以了,关闭的进出现如下错误,怎么回事
    ---------------------------
    Microsoft Visual C++ Debug Library
    ---------------------------
    Debug Assertion Failed!Program: D:\ProgramItem\VC\IVR\TelCallPlatform\Debug\TelCallPlatform.exe
    File: dbgheap.c
    Line: 1044Expression: _CrtIsValidHeapPointer(pUserData)For information on how your program can cause an assertion
    failure, see the Visual C++ documentation on asserts.(Press Retry to debug the application)
    ---------------------------
    终止(A)   重试(R)   忽略(I)   
    ---------------------------
      

  5.   

    你分配的内存被破坏了,查new