VS2010 MFC编辑框如何改变字体的大小和颜色

1.改变字体大小:

方法一:

步骤一:在Dlg类中增加一个类成员变量: CFont m_editFont;

注意:这里Font对象必须是类成员变量,不能是局部变量,否则会出现只改变了光标的大小,而不能改变字体的大小。

步骤二:添加一个m_editPlace的edit变量,OnInitDialog方法中增加下列语句:

m_editFont.CreatePointFont(180, "宋体");

m_editPlace.SetFont(&m_editFont); // 设置新字体

方法二:

OnInitDialog方法中增加下列语句也可以实现:

CFont* ptf=m_editPlace.GetFont(); // 得到原来的字体

LOGFONT lf;

ptf->GetLogFont(&lf);

lf.lfHeight = 20; // 改变字体高度

strcpy (lf.lfFaceName, "隶书"); // 改变字体名称

m_editFont.CreateFontIndirect(&lf);

m_editPlace.SetFont(&m_editFont); // 设置新字体

注意:If是个新的结构体变量,GetLogFont函数是实现将ptf中的LOGFONT结构体变量拷贝给If了,所以改变If不等于是改变ptf中的LOGFONT变量。所以下面必须加这两句来创建新的字体对象

m_editFont.CreateFontIndirect(&lf);

m_editPlace.SetFont(&m_editFont); // 设置新字体

2.设置字体颜色:

1.新建一个基于对话框的程序、
2.添加一个
pDC->SetTextColor(RGB(255,0,0));//设置他的文本显示
edit控件,id为IDC_EDIT_DEMO3.在CXXXDlg类向导中添加一个WM_CTLCOLOR响应函数、写下下面的代码:HBRUSH CChangeColor_EditDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: 在此更改 DC 的任何特性// TODO: 如果默认的不是所需画笔,则返回另一个画笔
switch(pWnd->GetDlgCtrlID())
{
	case IDC_EDIT_DEMO:
		pDC->SetTextColor(RGB(255,0,0));//设置他的文本显示
	break;
}
return hbr;
}
另外可参考MFC EDIT控件中改变背景色和文字颜色:http://blog.csdn.net/wjeson/article/details/7382364

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC RichEdit控件是一个Microsoft Visual C++中提供的文本编辑控件,可以应用于Windows图形用户界面应用程序中。下面是对于您的问题的解答: 1. 文字加粗:使用EM_SETCHARFORMAT消息设置CHARFORMAT2结构体的dwEffects成员的CFE_BOLD标志。 例如: CHARFORMAT2 cf; cf.cbSize = sizeof(CHARFORMAT2); cf.dwMask = CFM_BOLD; cf.dwEffects = CFM_BOLD; m_richEdit.SetSelectionCharFormat(cf); 2. 颜色字体大小、下划线、斜体:使用CHARFORMAT2结构体设置设置结构体的成员变量即可。 例如: CHARFORMAT2 cf; cf.cbSize = sizeof(CHARFORMAT2); cf.dwMask = CFM_COLOR | CFM_FACE | CFM_SIZE | CFM_UNDERLINE | CFM_ITALIC; cf.dwEffects = 0; cf.crTextColor = RGB(255, 0, 0); cf.yHeight = 200; wcsncpy_s(cf.szFaceName, LF_FACESIZE, L"微软雅黑", LF_FACESIZE); cf.bUnderlineType = CFU_UNDERLINE; cf.dwMask |= CFM_UNDERLINETYPE; cf.bCharSet = DEFAULT_CHARSET; cf.bPitchAndFamily = DEFAULT_PITCH; m_richEdit.SetSelectionCharFormat(cf); 3. 颜色字体框选项:使用SetSelectionCharFormat方法将绘制范围设置为所选文本的范围,然后设置CHARFORMAT2结构体。 例如: CHARFORMAT2 cf; cf.cbSize = sizeof(CHARFORMAT2); cf.dwMask = CFM_COLOR | CFM_FACE; cf.dwEffects = 0; cf.crTextColor = RGB(255, 0, 0); wcsncpy_s(cf.szFaceName, LF_FACESIZE, L"微软雅黑", LF_FACESIZE); m_richEdit.SetSel(0, -1); // 选择整个文本 m_richEdit.SetSelectionCharFormat(cf); 这样,选择的文本将呈现为红色、微软雅黑字体。 希望这些代码能够帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值