今天宠物迷的小编给各位宠物饲养爱好者分享mfc 设置文本颜色的宠物知识,其中也会对在mfc中怎样设置一个静态文本框的颜色(mfc静态文本框字体颜色)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
HBRUSH CTestDlg1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here // 判断下是不是你要改的控件ID if( pWnd->GetDlgCtrlID() == IDC_STATIC_MAX ) { pDC->SetTextColor(RGB(255,0,0)); //字体颜色 pDC->SetBkColor(RGB(0, 0, 255)); //字体背景色 } // TODO: Return a different brush if the default is not desired return hbr; }
先给该对话框生成一个ON_WM_CTLCOLOR()的消息映射,并定义一个CBrush m_brush; 在该对话框的OnInitDialog()函数里写上m_brush.CreateSolidBrush(RGB(0, 255, 255)); 然后在该对话框的OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)函数里写上 if (nCtlColor == CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT);// 此句使静态本文透明 pDC->SetTextColor(RGB(255,0,0));//此句设置文字颜色 return (HBRUSH)(m_brush.GetSafeHandle()); } 注:OnCtlColor()函数是在生成了ON_WM_CTLCOLOR()消息映射后自动生成的函数; 颜色RGB值0-255自己可改 背景RGB值(0,255,255),文字RGB值(255,0,0),效果如图:
richedit.text.select(起始字符,结束字符).font(字体,自己定义颜色什么的)
普通文本框不能改字体颜色 只能改背景色
改变编辑框文字颜色,就是在OnCtrlColor里面设置SetTextColor就可以了。大致代码如下: HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if(nCtlColor == CTLCOLOR_EDIT) pDC->SetTextColor(colour); // TODO: Return a different brush if the default is not desired return hbr; }你这个,需要在编辑框的EN_CHANGE消息响应函数中,获取文本并判断范围,将一个RGB类成员变量colour设置为需要的值。 参考文章: http://wenku.baidu.com/view/2ed4beea5ef7ba0d4a733b49.html
在生成的类中添加重载的虚函数OnCtlColor(CDC
*pDC,CWnd *pWnd,UINT nCtlColor)。
可以在该函数中设置pDC->SetBkMode(TRANSPARENT);将文本的背景设置为透明。
可以在该函数中设置pDC->SetTextColor(RGB(255,0,0));将文本的颜色设置为红色。
也可以指定某一静态文本的字体颜色,可以加如下判断:
switch(pWnd->GetDlgCtrlID())
{
case IDC_INFO:
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,0,0));
}
这个判断,可以仅仅将ID号为IDC_INFO的静态文本的字体颜色设置为红色。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“在mfc中怎样设置一个静态文本框的颜色”
上一篇
消化不良怎么办才好?
下一篇
伯恩山犬的性格特点