代码是这样的:
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
它说蓝色那行代码有问题
我想知道究竟哪里出了问题,请高手解答
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
它说蓝色那行代码有问题
我想知道究竟哪里出了问题,请高手解答
{
// TODO: Add your control notification handler code hereCString InputStr;
GetDlgItemText(IDC_INPUT,InputStr);
CRichEditCtrl m_richedit;
这句要放类定义中,要不为什么 ‘m_’
assertion(iswindow(m_hWnd))
m_richedt对象已建立,但并未与窗口关联
应m_richedit.create(..);m_richedit.getwindowtext();
还没有create
m_myRichEditCtrl.Create(
WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE,
CRect(10,10,100,200), pParentWnd, IDD_RICHEDITCTRL);