ID_myCEdit的控件在不在Cmyview中
Cmyview是个从什么派生的类呀

解决方案 »

  1.   

    CEdit有专门的函数,这样就对了CEdit* myEdit=GetDlgItem(ID_myCEdit);
    myEdit->ReplaceSel(myString);
      

  2.   

    在msdn的帮助里说:“Replaces only a portion of the text in an edit control. If you want to replace all of the text, use the CWnd::SetWindowText member function. ”,可见SetWindowText是可以用的,可是为什么我老是错呢?好像是CEdit不是CWND的错误。
      

  3.   

    你的CmyView是从CFormView派生的吧。
    把CEdit* myEdit=GetDlgItem(ID_myCEdit);
    改成CEdit* myEdit=(CEdit*)GetDlgItem(ID_myCEdit);
      

  4.   

    CEdit *myEdit=(CEdit *)GetDlgItem(ID_MYEDIT);
    GetDlgItem返回的是CWnd类型,需要类型转换。
    SetWindowText绝对是可以用的。
      

  5.   

    改成这样试试呢?
    CEdit* myEdit=(CEdit*)GetDlgItem(ID_myCEdit);如果还不行,请确认两点,
    1. Cmyview是对应于你的对话框资源的类,否则需要首先得到对话框的指针,比如pDlg,然后调用pDlg->GetDlgItem(…);
    2. myEdit确实已指向该控件,也就是它不为NULL,它的句柄不为0.
      

  6.   

    同意各位老兄的意见
    GetDlgItem()前面应该强制转换为(CEdit*),因为他返回的是CWnd*