使用richedit控件
1)初始化//必须加,否则无法显示窗口
CXXXApp::CXXXApp() //找到应用类
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
AfxInitRichEdit(); //此句必须加
LoadLibrary(_T("RICHED20.DLL")); // 或LoadLibrary(_T("RICHED32.DLL"));
}
2)使用wizard加入RichEdit的变量cstring类型m_richtext,以及控件control类型m_richctrl
就可以方便使用整个RichEdit了。
3)设置want return就可以直接回车换行,否则要ctrl+enter才能换行。
4)可以用m_richtext.find("\r\n")来找到换行符,找到的次数合计就是行数了,当然也有更高级方法sendmessage XXX
5)例如要获取某一行文字的傻瓜办法是用strtok函数来处理m_richtext。
6)如果要响应Rich Edit控件的OnEnChange事件,
需要在OnInitDialog()中添加
//CRichEditCtrl().SetEventMask(ENM_CHANGE);
GetDlgItem(RichEditID)->SetEventMask(ENM_CHANGE);
或者
m_CtrlRichEdit.SetEventMask(ENM_CHANGE);
其中m_CtrlRichEdit是Rich Edit关联的控件变量,非CString或其他变量。
在Edit控件OnEnChange的事件中不要随便用UpdateData(FALSE),因为当输入字符超过256个时,输入焦点会自动跳转到首行第一格
在mfc中使用工具栏里的RichEdit 控件时,应该在程序初始话时加入AfxInitRichEdit,或者 AfxInitRichEdit2
否则的话 程序会起不来.也没有任何错误信息.
这俩函数 是加载 Rich
否则的话 程序会起不来.也没有任何错误信息.
这俩函数 是加载 Rich