绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
12月182014

[教程]第十讲 GDI+文字,附发光字,阴影字

作者:绿色风   发布:2014-12-18 7:25 Thursday   分类:   阅读:10833次   评论:0条  

ACN论坛.讲师:seniors   转载请说明此文出处所在:<<简易工作室>>,谢谢!

GDI+之文字输出
本来这一讲想讲画笔,结果xms77问的文字颜色怎么设置,我回答错了,所以先讲文字
GDI+文字输出有二种方式
0、方式一 _GDIPlus_GraphicsDrawString方式
_GDIPlus_GraphicsDrawString这个函数里,没有参数设置画刷,其实是可以设置画刷的,只要修改一下
我改成了这样

Func _GraphicsDrawString($hGraphics, $sString, $nX, $nY, $hBrush = 0, $sFont = "Arial", $nSize = 10, $iFormat = 0)
        Local $hFormat = _GDIPlus_StringFormatCreate($iFormat)
        Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
        Local $hFont = _GDIPlus_FontCreate($hFamily, $nSize)
        Local $tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
        Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
        __GDIPlus_BrushDefCreate($hBrush);本来这句是直接建立黑色画刷
        Local $aResult = _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
        Local $iError = @error
        __GDIPlus_BrushDefDispose()
        _GDIPlus_FontDispose($hFont)
        _GDIPlus_FontFamilyDispose($hFamily)
        _GDIPlus_StringFormatDispose($hFormat)
        Return SetError($iError, 0, $aResult)
EndFunc   ;==>_GraphicsDrawString```
这样输出文字就不要麻烦的设置字体等信息了
1、方式二 _GDIPlus_PathAddString方式
就是把字符串转换为路径,通过填充路径或者描边路径来写字
在3.3.7.15版中,描边路径和填充路径函数里直接建立了画笔和画刷,会造成对象没有删除现象,好像在新版本中已经改过来了
我把修改过的贴一下代码
Func _GraphicsDrawPath($hGraphics, $hPath, $hPen = 0)
        Local $iTmpErr, $iTmpExt, $aResult

        __GDIPlus_PenDefCreate($hPen);使用这种方法,默认是黑色,已经传递的是Pen句柄就不再建立

        $aResult = DllCall($ghGDIPDll, "uint", "GdipDrawPath", "hwnd", $hGraphics, "hwnd", $hPen, "hwnd", $hPath)
        $iTmpErr = @error
        $iTmpExt = @extended

        __GDIPlus_PenDefDispose()

        If $iTmpErr Then Return SetError($iTmpErr, $iTmpExt, False)
        $GDIP_STATUS = $aResult[0]
        Return $aResult[0] = 0
EndFunc   ;==>_GraphicsDrawPath

Func _GraphicsFillPath($hGraphics, $hPath, $hBrush = 0)
        Local $iTmpErr, $iTmpExt, $aResult

        __GDIPlus_BrushDefCreate($hBrush);使用这种方法,默认是黑色,已经传递的是Brush句柄就不再建立

        $aResult = DllCall($ghGDIPDll, "uint", "GdipFillPath", "hwnd", $hGraphics, "hwnd", $hBrush, "hwnd", $hPath)
        $iTmpErr = @error
        $iTmpExt = @extended

        __GDIPlus_BrushDefDispose()

        If $iTmpErr Then Return SetError($iTmpErr, $iTmpExt, False)
        $GDIP_STATUS = $aResult[0]
        Return $aResult[0] = 0
EndFunc   ;==>_GraphicsFillPath```


 

实例中附送了发光字,阴影字的写法,自己体会吧
NewImage.png 

 

 实例代码

源码较长:直接下载查看  第十讲.au3





本文固定链接: http://www.jianyiit.com/post-48.html

blogger
该日志由 绿色风 于2014-12-18 7:25 Thursday发表在 分类下。
版权所有:《绿色风's Blog》 → 《[教程]第十讲 GDI+文字,附发光字,阴影字》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::祝福大家圣诞节快乐快乐,平安平安.
下一篇:笑一笑

热门文章

相关文章

  • [教程]第十四讲 GDI+图像之图元文件
  • [教程]第九讲 GDI+画刷
  • [教程] 第四讲 GDI画刷
  • [教程]第十三讲 GDI+区域及剪切区域
  • [教程] 第一讲 GDI文字textout
取消回复

发表评论

亲,头像对么?

25 + 71 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7237 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap