您的位置:首页 > 其它

GDI+在固定位置(固定点)的地方绘制文本

2014-08-13 14:35 169 查看
下面这段代码要求文本绘制在一个点的正下方:

Graphics graphics(pDC->m_hDC);

int nSize = vShowText.size();

if(0 == nSize)

return;

Font font(L"宋体",vShowText.at(0).size);

StringFormat format;

format.SetAlignment(StringAlignmentCenter);

format.SetLineAlignment(StringAlignmentCenter);

SolidBrush bs(vShowText.at(0).color);

RectF rectf(0,0,0,0);

GraphicsPath path;

FontFamily fontfamily;

font.GetFamily(&fontfamily);

/*GDI+绘制文本一定是WCHAR型,所有需转换*/

WCHAR* pstr = NULL;

for(int i=0;i<nSize;i++)

{

bs.SetColor(vShowText.at(i).color);

pstr = vShowText.at(i).sText.AllocSysString();

path.AddString(pstr,-1,&fontfamily,font.GetStyle(),font.GetSize(),vShowText.at(i).cpShowPos,&format);

path.GetBounds(&rectf);

rectf.Width = vShowText.at(i).sText.GetLength()*(font.GetSize());//获取字体文字宽度*文字个数

rectf.Height = font.GetHeight(0.0);//使用字体的高度

rectf.X = vShowText.at(i).cpShowPos.X - rectf.Width/2;

rectf.Y = vShowText.at(i).cpShowPos.Y - rectf.Height/2;

graphics.DrawString(pstr,-1,&font,rectf,&format,&bs);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MFC gdi+ 字体