GDI+ 绘制文本

背景

图形类 Graphics 是 GDI+的核心,它提供绘制图形、图像和文本的各种方法。

字体

①.FontFamily

FontFamily 指字样,即字体的外形,代表了字体的种类。如 Arial、Times New Roman、宋体等。

FontFamily fontFamily(L"宋体");

②.Font

Font 是指字体,代表同一字样的不同字号、字形、单位的字体。其中字形缺省值为 FontStyleRegular,单位缺省值为 UnitPoint。

Font font(L"Arial", 16); //使用字体类型名称和缺省参数

FontFamily fontFamily(L"Arial"); 
Font font(&fontFamily, 16, FontStyleRegular, UnitPixel); //使用FontFamily指针

③.FontStyle

FontStyle 指字体的风格,是枚举常量:

typedef enum { 
 FontStyleRegular = 0, // 正常(缺省值)
 FontStyleBold = 1, // 粗体
 FontStyleItalic = 2, // 斜体
 FontStyleBoldItalic = 3, // 粗斜体
 FontStyleUnderline = 4, // 下划线
 FontStyleStrikeout = 8 // 删除线
} FontStyle;

④.Font

字体的实际大小和指定的单位有关,字体单位也是枚举常量:

typedef enum { 
 UnitWorld = 0, // 逻辑单位
 UnitDisplay = 1, // 设备单位
 UnitPixel = 2, // 像素
 UnitPoint = 3, // 点(缺省值),3/4 像素
 UnitInch = 4, // 英寸 
 UnitDocument = 5, //文档
 UnitMillimeter = 6 // 毫米
} Unit;

绘制文本

①.概述

Graphics 中使用 DrawString 方法在指定位置绘制文本或者在一个指定矩形内绘制文本。DrawString 传入的字符串是宽字符串,对以 null 结尾的字符串,长度可以使用-1 来代替。

②.在指定位置绘制文本

void DemoGDI::DrawUser(HDC hdc)
{
  Graphics graphics(hdc);//构造 Graphics 对象
  SolidBrush solidBrush(Color::Blue);
  Font font(L"宋体", 24, FontStyleRegular, UnitPixel);
  
  QString m_txt = "在Qt中使用GD+示例";
  PointF pointF(30.0f, 30.0f);
  
  graphics.DrawString(m_txt.toStdWString().c_str(), -1, &font, pointF,&solidBrush);
    
}

在这里插入图片描述

③.在指定矩形绘制文本

void DemoGDI::DrawUser(HDC hdc)
{
  Graphics graphics(hdc);//构造 Graphics 对象
  SolidBrush solidBrush(Color::Blue);
  Font font(L"宋体", 24, FontStyleRegular, UnitPixel);
  
  QString m_txt = "在Qt中使用GD+示例";
  RectF rectF(30.0f, 30.0f, 90.0f, 200.0f);
  
  graphics.DrawString(m_txt.toStdWString().c_str(), -1, &font, rectF,nullptr,&solidBrush);

  Pen m_pen(Color::Black);
  graphics.DrawRectangle(&m_pen, rectF);
    
}

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值