MFC 里面一个Static Text,如何在static text上面绘指定颜色的矩形框并且不覆盖Static的文字?

如题,求教

你派生一个CSTATIC的类,在OnPaint()函数里面,
CBrush brush(RGB(0,128,192));
CBrush brushFrame(framecolor);//边框颜色,framecolor---为全局变量
dc.FillRect(&rect,&brush);
dc.FrameRect(&rect,&brushFrame);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(255,255,255));
CFont * pOldFont;
pOldFont=SetCaptionFont(&dc);
dc.DrawText(strText,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
dc.SelectObject(pOldFont);
在定义一个framecolor(COLORREF color)
{
framecolor = color;
}
在改变颜色时:先调用framecolor
然后调用CSTATICEX::Invalidate();就可以了!
你试试可不可以!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-13
用CDC类或其子类CPaintDC 或CClientDC给控件着色。研究一下吧。

MFC文字显示的具体步骤
首先不用保存为txt 1.MFC里面有个Static Text的控件 你把内容多输入点放里面就可以了 2MFC里面的Edit Control控件 它的属性有一项是Mutiline就是多行显示 你设置为TRUE 然后SetDlgItemText(IDC_EDIT,L"your content"); 你把your content换成你要的内容就OK了 中途还可以自己手动加\\n换行什么的 还...

MFC中如何改变STATIC TEXT的大小
我说个简单的方法:加个成员变量CFont font;在OnInitDialog中font.CreatePointFont(120,L"楷体"); 120表示12号字体 当然STATIC 的ID要改,IDC_STA GetDlgItem(IDC_STA)->SetFont(&font);

相似回答