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);
}
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);
}
相关文章推荐
- GDI+绘制自定义行距的文本的三种方法。
- 练习1-20:请编写程序detab,将输入中的制表符替换成适当数目的空格,适空格充满到下一个制表符中止的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。n应该作为变量还是符号常量呢?
- opengl绘制在屏幕坐标中固定位置的坐标轴模型
- C#利用GDI+绘制旋转文字,矩形内可以根据布局方式排列文本
- GDI+ 绘制多行文本,自动换行。
- GDI+绘制文本
- GDI+ 绘制多行文本
- C#--GDI+绘制多行文本和格式化文本
- C#--GDI+绘制多行文本和格式化文本
- 7.利用GDI+绘制文本
- GDI+ 绘制自定义制表位位数的文本。
- GDI+中的文本绘制技术
- GDI+绘制竖向文本
- 使用 GDI+ 绘制有间距的文本
- C#中使用GDI+绘制形状时自动缩放文本
- 【游戏随机系统模拟】随机位置随机长度的固定文本
- GDI+绘制自定义行距的文本(续)
- 转载:GDI+绘制文字的位置偏移分析
- gdi+绘制走势图
- win32下绘制多行文本