当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

VC中特殊字体的实现方法讲解

  渐变字:
 
  

 // 获得窗口的客户区设备上下文句柄
 
  CClientDC dc(this);
 
  // 更改当前字体
 
  LOGFONT lf;
 
  dc.GetCurrentFont()->GetLogFont(lf);
 
  CFont font, *pOldFont;
 
  lf.lfCharSet=134;
 
  lf.lfHeight=-150;
 
  lf.lfWidth=0;
 
  strcpy(lf.lfFaceName, "隶书");
 
  font.CreateFontIndirect(lf);
 
  pOldFont=dc.SelectObject(&font);
 
  dc.SetBkMode(TRANSPARENT);
 
  // 更改当前画笔为空
 
  CPen pen(PS_NULL, 1, RGB(255, 0, 0)), *pOldPen;
 
  pOldPen=dc.SelectObject(pen);
 
  // 更改当前刷子
 
  CBrush br, *pOldBrush;
 
  pOldBrush=dc.SelectObject(br);
 
  // 开始一个路径
 
  dc.BeginPath();
 
  dc.TextOut(10, 10, "渐变字");
 
  dc.EndPath();
 
  // 绘制渐变效果
 
  dc.SelectClipPath(RGN_COPY);
 
  for (int i=255; i>0; i——)
 
  {
 
  int iRadius=(600*i)/255;
 
  dc.SelectObject(pOldBrush);
 
  br.DeleteObject();
 
  br.CreateSolidBrush(RGB(255, i, 0));
 
  dc.SelectObject(br);
 
  dc.Ellipse(-iRadius, -iRadius/3, iRadius, iRadius/3);
 
  }
 
  // 恢复设备上下文的原有设置
 
  dc.SelectObject(pOldFont);
 
  dc.SelectObject(pOldPen);
 
  dc.SelectObject(pOldBrush);
 
  空心字:
 
  // 获得窗口的客户区设备上下文句柄
 
  CClientDC dc(this);
 
  // 更改当前字体
 
  LOGFONT lf;
 
  dc.GetCurrentFont()->GetLogFont(lf);
 
  CFont font;
 
  CFont *pOldFont; // 保存设备上下文最初使用的字体对象
 
  lf.lfCharSet=134;
 
  lf.lfHeight=-150;
 
  lf.lfWidth=0;
 
  strcpy(lf.lfFaceName, "隶书");
 
  font.CreateFontIndirect(lf);
 
  pOldFont=dc.SelectObject(&font);
 
  dc.SetBkMode(TRANSPARENT);
 
  // 更改当前画笔
 
  CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
 
  CPen *pOldPen;
 
  pOldPen=dc.SelectObject(pen);
 
  // 开始一个路径
 
  dc.BeginPath();
 
  dc.TextOut(10, 130, "空心字");
 
  dc.EndPath();
 
  // 绘制路径
 
  dc.StrokePath();
 
  // 恢复设备上下文的原有设置
 
  dc.SelectObject(pOldFont);
 
  dc.SelectObject(pOldPen);
共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接