QQ登录

只需一步,快速开始

实现文字投影光晕效果--上位机VC

[ 复制链接 ]

实现文字投影光晕效果--上位机VC

实现文字投影光晕效果--上位机VC
实现文字投影光晕效果--上位机VC
功能展示
有时,程序界面上部分文字需要点缀效果,如光晕,投影,我们当前例程就实现这一功能,效果如图.点击<展示效果>就会显示指定文字的效果,文字颜色及光晕颜色可以通过例程按钮中变量  intFontColor = 255;int ShadowColor=0;进行设置   
要点提示
例程是基于GDI+实现文字光晕或投影效果,在VC6.0中使用GDI+得手动初始化其环境,在更高版本则不用
GDI+使用前分三步初始化
1.在stdafx.h 中包含头文件
//使用GDI+第一步
#define UNICODE
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include "Include\\gdiplus.h"
using namespace Gdiplus;
#pragma comment(lib, "Include\\gdiplus.lib")

2.程序初始化是初始化GDI+环境
//GDI+第二步
  ULONG_PTR     diplusToken;
  GdiplusStartupInputgdiplusStartupInput;  

  GdiplusStartup(&diplusToken,&gdiplusStartupInput, NULL);
在程序退出时 关闭环境
//GDI+第三步

  GdiplusShutdown(diplusToken);

实现功能
1.新建基于对话框的应用程序
2.复制例程根目录GDI+文件夹Include,并分三步初始化GDI+
//使用GDI+第一步
#define UNICODE
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include "Include\\gdiplus.h"
using namespace Gdiplus;
#pragma comment(lib, "Include\\gdiplus.lib")
//GDI+第二步
  ULONG_PTR     diplusToken;
  GdiplusStartupInputgdiplusStartupInput;  
  GdiplusStartup(&diplusToken,&gdiplusStartupInput, NULL);
//GDI+第三步

  GdiplusShutdown(diplusToken);
3,添加自定义函数void Project (Graphics &g, int Fuzzy, Rect rectPaint, LPCWSTRText, Rect Textrect, Font &TextFont, int FontColor, int ShadowColor)用于实现光晕或投影效果;
G为显示文字的设备上下文件, Fuzzy为投影或光晕大小, rectPaint为绘制在矩形, Text为要显示的文字 ,TextFont为文字的字体格式,FontColor为文字 的颜色,ShadowColor为背景颜色;
4.添加一按钮关联点击函数用于调用上面函数,实现效果
  1. void CMy123Dlg::OnButton1()
  2. {
  3.   LOGFONTW lfont;
  4.   memset( &lfont, 0, sizeof(lfont) );
  5.   lfont.lfHeight = -130, //   nHeight   注意使用负值,表示character height,  正值表示 cell height
  6.   lfont.lfWidth  = 0,  //   nWidth
  7.   //0,     //   nEscapement
  8.   //0,     //   nOrientation
  9.   lfont.lfWeight      = FW_NORMAL,  //nWeight
  10.   lfont.lfItalic      = FALSE,      //bItalic
  11.   lfont.lfUnderline   = FALSE,   //   bUnderline
  12.   lfont.lfStrikeOut   = 0,         //   cStrikeOut
  13.   lfont.lfCharSet     = DEFAULT_CHARSET,   //   nCharSet
  14.   lfont.lfOutPrecision    = OUT_DEFAULT_PRECIS,//   nOutPrecision
  15.   lfont.lfClipPrecision   = CLIP_DEFAULT_PRECIS,  //   nClipPrecision
  16.   lfont.lfQuality         = DEFAULT_QUALITY,      //   nQuality
  17.   lfont.lfPitchAndFamily  = DEFAULT_PITCH | FF_SWISS,//   nPitchAndFamily
  18.   wcscpy( lfont.lfFaceName, (L"微软雅黑") );  //   lpszFacename
  19.    CDC *pDC = GetDC();
  20.   Graphics g(pDC->m_hDC);
  21.   int Fuzzy =30;
  22.   CString strFileName="微软雅黑";
  23.   LPCWSTR Text = strFileName.AllocSysString();
  24.   Rect Textrect(12,12,555,655);
  25.   Rect rectPaint(Textrect);
  26.   rectPaint.Inflate(40,40);
  27.   Font  TextFont(pDC->m_hDC, &lfont );
  28.   int FontColor = 255;
  29.   int ShadowColor=0;
  30.   Project(g,  Fuzzy,  rectPaint,  Text,  Textrect, TextFont,  FontColor,  ShadowColor);
  31.   ReleaseDC(pDC);
  32. }
复制代码


我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:实现文字投影光晕效果--上位机VC.txt 
文件大小:106 Bytes  售价:5金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索