请教一个GDI+ 中文乱码问题
以下是TonyDeng大哥写的一个用GDI+画图写字的代码,代码很好用。
就是写中文时会出现乱码,不知有什么方法解决它。(还有就是想把写的文字坚排)!
TonyDeng
https://bbs.bccn.net/thread-344650-1-1.html
程序代码:*----------------------------
* 使用 GDI+ 庫繪圖範例
* 打開 VCX 文件可以查看類庫源代碼
*----------------------------
*----------------------------
* VFP 9.0(SP2) 自帶GDI+類庫
* 文件名:_GDIplus.vcx, _GDIplus.vct (若使用頭文件,有 GDIplus.h, GDIplus_locs.h)
* 路徑:VFP 安裝目錄下 FFC 文件夾
*----------------------------
SET PATH TO HOME() + "FFC"
_Bitmap = NEWOBJECT("gpBitmap", "_GDIplus.vcx") && 建立繪圖板對象,圖形將在此畫板上繪製
WITH _Bitmap
.Create(128,128) && 設定畫板大小,寬度和高度
.SetResolution(300,300) && 設定分辨率(x,y 的 DPI 値)
ENDWITH
_Color = NEWOBJECT("gpColor", "_GDIplus.vcx") && 建立顔色對象
_Pen = NEWOBJECT("gpPen", "_GDIplus.vcx") && 建立畫筆對象
_Font = NEWOBJECT("gpFont", "_GDIplus.vcx") && 建立字體對象
_StringFormat = NEWOBJECT("gpStringFormat", "_GDIplus.vcx")
_TextBrush = NEWOBJECT("gpSolidBrush", "_GDIplus.vcx")
_Point = NEWOBJECT("gpPoint", "_GDIplus.vcx")
_Graphics = NEWOBJECT("gpGraphics", "_GDIplus.vcx") && 建立圖形對象
WITH _Graphics
.CreateFromImage(_Bitmap) && 指定圖形對象的設備,此處指向已建立的_Bitmap對象
_Color.Set(255,255,255) && 設定顔色,三個參數分別是紅、緑、藍値,即RGB各自獨立
.Clear(_Color) && 用設定的顔色填充整個圖形,可用於背景顔色
_Color.Set(0,0,0) && 改變顔色
_Pen.Create(_Color, 10) && 將指定的顔色賦予畫筆,請查看類庫中gpPen對象Create方法的參數,此處10是筆寬
.DrawLine(_Pen, 20, 20, 108, 20) && 用設定的畫筆畫圖,類庫中有很豐富強大的畫圖函數
.DrawLine(_Pen, 20, 50, 108, 50)
_Color.Set(0,255,0)
_Font.Create("Arial", 10, 0, 3) && 設置文本字體
_TextBrush.Create(_Color) && 設定文本顔色
_Point.Create(10, 80) && 設定文本左上角位置
.DrawStringA("Test", _Font, _Point, _StringFormat, _TextBrush)
ENDWITH
_Bitmap.SaveToFile("Test.BMP", "image/bmp") && 將繪圖板保存爲文件,此處指定文件格式爲.BMP
RELEASE ALL
RETURN
DrawStringA 方法以指定的字体和位置绘制一个串(ANSI 版本)。
语法:THIS.DrawStringA( tcAnsiString, [toFont],tvRectPoint,[toStringFormat],[toBrush])
返回值:逻辑型,表示成功或失败。
参数:
tcAnsiString,必须,要绘制的 ANSI 串。
toFont,可选,指定要使用字体的 gpFont 对象。
tvRectPoint,必须,指定绑定矩形的 gpRect 对象,或指定坐上角的 gpPoint 对象。
toStringFormat,可选,gpStringFormat 对象。
toBrush,可选,绘制文本时要使用的 gpBrush 对象。
DrawStringW 方法
以指定的字体和位置绘制一个串(Unicode 版本)。
语法:THIS.DrawStringW( tcUnicodeString,[toFont],tvRectPoint,[toStringFormat],[toBrush])
返回值:逻辑型,表示成功或失败。
参数:
tcUnicodeString,必须,要绘制的 Unicode 串。
toFont,可选,指定要使用字体的 gpFont 对象。
tvRectPoint,必须,指定绑定矩形的 gpRect 对象,或指定坐上角的 gpPoint 对象。
toStringFormat,可选,gpStringFormat 对象
toBrush,可选,绘制文本时要使用的 gpBrush 对象。










