为主对话框添加两个静态函数作为Rich Edit控件的输入、输出数据回调函数,声明:
定义:
在BOOL CRichEditDemoApp::InitInstance()中添加初始化代码:
- protected:
- static DWORD CALLBACK StreamOutProc(
- DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb);
- static DWORD CALLBACK StreamInProc(
- DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb);
定义:
- DWORD CALLBACK CFontDlgDemo::StreamOutProc(
- DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)
- {
- CFile *pFile=(CFile*)dwCookie;
- *pcb=pFile->Read(pbBuff,cb);
- return 0;
- }
- DWORD CALLBACK CFontDlgDemoDlg::StreamInProc(
- DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)
- {
- CFile *pFile=(CFile*)dwCookie;
- pFile->Read(pbBuff,cb);
- *pcb=cb;
- return 0;
- }
在BOOL CRichEditDemoApp::InitInstance()中添加初始化代码:
- AfxInitRichEdit2();
void CFontDlgDemoDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//定义并初始化文字格式结构
CHARFORMAT cf = {0};
cf.cbSize = sizeof(cf);
//取得文本框当前文字的格式
m_edtContent.GetSelectionCharFormat(cf);
//创建字体对话框,并用取得的文字格式初始化对话框。
CFontDialog dlg(cf);
//显示对话框,选择字体信息
if(dlg.DoModal() == IDOK)
{
//取得用户所选字体信息
dlg.GetCharFormat(cf);
//将文本格式信息设置到文本框当前文本
m_edtContent.SetSelectionCharFormat(cf);
}
}
void CFontDlgDemoDlg::OnBnClickedBtnColor()
{
// TODO: 在此添加控件通知处理程序代码
//定义并初始化文字格式结构
CHARFORMAT cf = {0};
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR;
//取得文本框当前文字的格式
m_edtContent.GetSelectionCharFormat(cf);
CColorDialog dlg(cf.crTextColor);
//显示对话框,选择字体信息
if(dlg.DoModal() == IDOK)
{
//取得用户所选字颜色
cf.crTextColor = dlg.GetColor();
//将颜色设置到文本框当前文本
cf.dwEffects = 0;
m_edtContent.SetSelectionCharFormat(cf);
}
}