铁匠

做人要低调
随笔 - 133, 评论 - 255 , 引用 - 184

导航

公告

文章分类

存档

随笔分类

相册

BLOG

网站

论坛

开始把GDI+引入到Delphi中来

最近在写一个小控件,涉及到复杂的坐标变换,以及旋转之类的,现在三角函数都记不全了,作这个实在是痛苦.突然想到了.NET中的图片处理已经使用了GDI+了,里面的坐标变换之类的应该是GDI+的一些API.于是找来Reflector把System.Drawing这个DLL反编,查看源码,果真是从GDIplus.dll这个库里导出来的.GdipRotateWorldTransform 这个实现了坐标系的旋转,GdipTranslateWorldTransform这个实现了坐标系的平移...
不过在处理写文字串的时候GdipDrawString,碰到了麻烦:里面的字体什么的还要引用其它的API(GdipCreateFontFamilyFromName,GdipCreateFont)来生成.在使用GdipCreateFontFamilyFromName的时候,发现生成的FontFamily一直是空的,比较奇怪,最后发现.NET里面实现的时候,导入的字符集已经由以前常见的Ansi变成Unicode了,于是把字体名称的字符转成Unicode编码后搞定。得到一个提示,里面的所有字串的都是需要Unicode编码。
不过比较郁闷的事情是生成的图片一直是空白的,跟踪每一步API的使用返回的值都是OK。还得要一袋烟功夫来研究。

发表于 2007年8月7日 17:43

评论

No comments posted yet.

Post Comment

主题  
姓名  
主页
校验码  
内容   
京ICP备 05050892号