18字体和颜色对话框

为主对话框添加两个静态函数作为Rich Edit控件的输入、输出数据回调函数,声明:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. protected:  
  2.     static DWORD CALLBACK StreamOutProc(  
  3.         DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb);  
  4.     static DWORD CALLBACK StreamInProc(  
  5.         DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb);  

定义:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. DWORD CALLBACK CFontDlgDemo::StreamOutProc(  
  2.     DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)  
  3. {  
  4.     CFile *pFile=(CFile*)dwCookie;  
  5.     *pcb=pFile->Read(pbBuff,cb);  
  6.     return 0;  
  7. }  
  8.   
  9. DWORD CALLBACK CFontDlgDemoDlg::StreamInProc(  
  10.     DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)  
  11. {  
  12.     CFile *pFile=(CFile*)dwCookie;  
  13.     pFile->Read(pbBuff,cb);  
  14.     *pcb=cb;  
  15.     return 0;  
  16. }  

在BOOL CRichEditDemoApp::InitInstance()中添加初始化代码:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 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);
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值