怎样修改CEdit中的文本的字体大小及颜色

怎样修改CEdit中的文本的字体大小及颜色,第1张

首先说明运行环境:win7+ vs2003 一:CEdit部分 改变颜色:============================== 重载对话框的WM_CTLCOLOR消息处理。 在下例中,要修改颜色的文本框对象ID为:IDC_EDIT。 HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor)// TODO: Change any attributes of the DC here if(pWnd == &m_edit) { pDC->SetBkMode(TRANSPARENT)pDC->SetTextColor(RGB(0,0,255))HBRUSH newHbr = CreateSolidBrush(GetSysColor(COLOR_BTNFACE))// TODO: Return a different brush if the default is not desired return newHbr} return hbr} 改变字体的大小:=========================================思路:调用控件的SetFont方法。 步骤:1:添加字体类对象 //假设你已有了名为My的对话框工程.并有一个ID=IDC_EDIT1的Edit控件. class CMyDlg : public CDialog { public: CFont *m_Font//最好用指针,我用对象调用好像不起作用,不清楚原因! m_Font = new CFont//结束时记得要delete m_Font........ }2.新建字体&设置字体myFont.CreateFont(41,0,0,0, 100,FALSE,FALSE,0,ANSI_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,FF_SWISS,(LPCTSTR)"Arial")//创建字体 CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDITBegin)m_Edit->SetFont(&myFont,FALSE)//设置字体 创建字体函数BOOL CreateFont的参数说明: =============BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename )nHeight :字体高度. 三中情况 1、>0:字体的高度值(设备坐标)2、=0:字体采用缺省值. 3、<0:此值的绝对值为高度. nWidth :字体宽度. nEscapement :文本行的倾斜度. nOrientation :字符基线的倾斜度. nWeight :字体的粗细.如下: .FW_DONTCARE .FW_THIN .FW_EXTRALIGHT ..... bItalic :字体是否为斜体 bUnderline :字体是否带下划线 cStrikeOut :字体是否带删除线 nCharSet :字体的字符集 .ANSI_CHARSET .DEFAULT_CHARSET .SYMBOL_CHARSET..... nOutPrecision :字符的输出精度 nClipPrecision :字符裁剪的精度 nQuality :字符的输出质量 nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族) lpszFacename :字体名称 二. CButton的 *** 作(以及静态文本-Static Text控件)================= 上面的搞定以后,CButton就显得比较简单了。 思路:在对话框的OnInitDialog()方法里,通过调用控件的SetFont方法。 代码:GetDlgItem(IDC_STATIC4)->SetFont(&fnt_static)GetDlgItem(IDC_BUTTONGenerate)->SetFont(&fnt_static)其中,IDC_STATIC,IDC_BUTTON分别为静态文本和按钮的ID。 PS:以上讨论的方法只是一次修改一个控件的属性,显然这样做是不符合面向对象的思想的。 一了百了的方法:从CEdit类派生出一个可以自己处理字体、背景和字体颜色的类。具体怎样做,在研究出来后再写一篇。

最简单的方法是你用类向导把这个编辑框控件映射成一个CEdit类型的对象,然后用对象的SetWindowText函数来设置里面的文本。

也可以用GetDlgItem函数来通过编辑框控件的ID取得编辑框对象的CWnd指针,通过指针调用SetWindowText函数来设置文本。

还可以直接用SetDlgItemText函数来设置文本。

比如现在你有一个button空间吧!id是idc_button1,在这个空间上面右击鼠标,选择classwizard,添加bn_clicked消息,然后在onbutton1消息响应函数中调用getdlgitem(idc_edit1)获取当前编辑控件的指针调用setwindowtext()函数设置,形式如下getdlgitem(idc_edit1)-ampgtsetwindowtext(“这是个测试“)nbsp完成!你可是试验一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11096224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存