代码是这样的:
void CMyDlg::OnSave() 
{
// TODO: Add your control notification handler code here
    CString str; CFileDialog   savefile(FALSE,".txt ",fileName,OFN_EXPLORER,"Text Files (*.txt)|*.txt|All Files (*.*)|*.*||", this);  
if(savefile.DoModal()==IDOK)
{
ofstream ofs(savefile.GetPathName());
CStatic *pst=(CStatic*)GetDlgItem(IDC_INPUT);
pst->GetWindowText(str);
ofs<<str;
    

}}
void CMyDlg::OnCheck() 
{
// TODO: Add your control notification handler code here CString InputStr;
GetDlgItemText(IDC_INPUT,InputStr);
   
CRichEditCtrl m_richedit; CHARFORMAT cf;
    ZeroMemory(&cf, sizeof(CHARFORMAT));
    cf.cbSize = sizeof(CHARFORMAT);
    cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |
        CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
    cf.bCharSet = ANSI_CHARSET;
    cf.dwEffects = 0;
    cf.yHeight = 20*20;//文字高度
    cf.crTextColor = RGB(200, 100, 255); //文字颜色
    strcpy(cf.szFaceName ,"宋体");//设置字体
    
    m_richedit.SetWindowText("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh");
    m_richedit.SetSel(0,10);//设置前10个字符颜色
    m_richedit.SetSelectionCharFormat(cf);

 
}
在没加红色那段代码时,程序运行是没有问题的,但加了之后就出现debug assertion failure
它说蓝色那行代码有问题
我想知道究竟哪里出了问题,请高手解答

解决方案 »

  1.   

    是不是没有调 AfxInitRichEdit
      

  2.   

    void CMyDlg::OnCheck()  
    {
    // TODO: Add your control notification handler code hereCString InputStr;
    GetDlgItemText(IDC_INPUT,InputStr);
        
    CRichEditCtrl m_richedit;
    这句要放类定义中,要不为什么 ‘m_’
      

  3.   

    getwindowtext()需要断言
    assertion(iswindow(m_hWnd))
    m_richedt对象已建立,但并未与窗口关联
    应m_richedit.create(..);m_richedit.getwindowtext();
      

  4.   

    CRichEditCtrl m_richedit;放到头文件中定义
    还没有create
    m_myRichEditCtrl.Create(
       WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE,
       CRect(10,10,100,200), pParentWnd, IDD_RICHEDITCTRL);