程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Font 对象缺少属性(音高)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Font 对象缺少属性(音高)?

开发过程中遇到Font 对象缺少属性(音高)的问题如何解决?下面主要结合日常开发的经验,给出你关于Font 对象缺少属性(音高)的解决方法建议,希望对你解决Font 对象缺少属性(音高)有所启发或帮助;

我正在复制 this Image->ASCII 转换器,但在 c# 中,其中一个重要的评论是:

很重要的一点是,这里使用了mm_txt->Font的设置, 所以一定要设置:

Font->Pitch = fpFixed
Font->Charset = OEM_CHARSET
Font->name = "System"

所以在创建 System.Drawing.Font 对象时,我这样做:

const int OEM_CHARSET = 255;
Font Font = new Font("System",7f,FontStyle.Regular,GraphicsUnit.Pixel,OEM_CHARSET);

但是,问题是我没有看到指定 Font 音高的选项。现在这很重要,因为没有它,文本完全扭曲。

我查看了 Font 的构造函数,发现它调用了

GpStatus WINGDIPAPI GdipCreateFont( GDIPCONST GpFontFamily *FontFamily,REAL emSize,INT style,Unit unit,GpFont **Font )

现在即使这样也没有 Pitch 参数的选项。

现在我想提两件事:

  1. 我已经尝试过使用 CourIEr New,因为默认情况下字体是固定宽度的,并且图像可以正常工作,但是我想尝试使用 System 字体。
  2. 根据this文章

字体可以是等宽字体(有时称为固定间距字体),例如 CourIEr New 和 LucIDa Console,或者它们可以是可变音高的,比如 Arial 和 Times New Roman。全部使用等宽字体绘制的字符 具有相同的宽度,而在可变间距字体中,宽度 字符因字符而异。

现在我假设上面的文本块说明 Pitch 在调用 Gdi+ 期间由 GdipCreateFont 自动确定。

默认情况下,System 不是固定宽度,但我知道如果您在调用 GDI 函数 FIXED_PITCH 时设置 CreateFont,它可以是固定宽度。

有没有办法使用 GDI+ 来创建一个 Font 对象,并使用 System 字体系列设置 FIXED_PITCH

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Font 对象缺少属性(音高)全部内容,希望文章能够帮你解决Font 对象缺少属性(音高)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。