![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-01 19:39 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » dos字体问题 |
| 可打印版本 2,586 / 11 |
| 第1楼 stone830209 | 发表于 2006-09-20 05:13 |
| 初级用户 发帖 9 积分 25 | |
|
dos字体问题 我在做程序的图形界面的时候,要用到许多不同的字体,这些字体windows都有,比如仿宋,新魏,等等,我想问问大家dos下运行的程序(16位,32位的都行),有没有方便些的字体解决方案,实现windows字体的显示。谢谢
|
|
| 第2楼 stone830209 | 发表于 2006-09-20 07:37 |
| 初级用户 发帖 9 积分 25 | |
|
希望看到本贴的朋友能帮顶一下,如果觉得这个问题很幼稚,那也请您在百忙之中,点拨一二,也许您的几句话就帮了我很大的忙。谢谢了
|
|
| 第3楼 本是 | 发表于 2006-09-20 12:09 |
| 银牌会员 发帖 790 积分 2,227 | |
|
请到汉化版找“本是”在VGA文本汉字显示的贴子里提供过!
|
|
| 第4楼 JonePeng | 发表于 2006-09-22 11:06 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
DOS下的16*16点阵中文字只有默认的宋体字最好看
|
|
| 第5楼 stone830209 | 发表于 2006-09-22 20:56 |
| 初级用户 发帖 9 积分 25 | |
|
首先非常感谢两位高手的回答,不过我想知道的是一些原理性的东西,或者一个具体的方案,比如我现在正着手的一个方案是,像vb的picturebox控件中用我想要的windows字体写入所有ascII码字符,然后逐个扫描,生成该字体的所有ascII字模。其实总结一下,我的问题就是,希望大家给提供一些,生成字模的方案,或者你曾经实现的思路。谢谢
|
|
| 第6楼 stone830209 | 发表于 2006-09-22 21:15 |
| 初级用户 发帖 9 积分 25 | |
|
对了顺便说一下,我用picturebox控件生成字模的时候,有个地方感觉很别扭,就是字体大小的问题,由于要逐个扫描picturebox中的字符,所以关键的一点是要知道该种字体字符占多少像素,比如16*16或32*32,但是windows字体大小的单位都是磅,所以我的办法是,扫描一个字符,然后测出它的长宽边界,用这个边界做为以后显示和扫描的字体长宽像素值,我总感觉这种办法挺别扭的,希望大家也给指点一下。
|
|
| 第7楼 zyl910 | 发表于 2006-09-22 21:52 |
| 中级用户 发帖 126 积分 282 | |
|
1 缇 = 1/1440 英寸
1 磅 = 1/72 英寸 = 20 缇 但将这些单位化为像素就比较复杂了: 水平方向1英寸= GetDeviceCaps(hDC, LOGPIXELSX) 像素 垂直方向1英寸= GetDeviceCaps(hDC, LOGPIXELSY) 像素 GetDeviceCaps是一个GDI API,用于得到DC的属性 hDC是你绘图所用的DC,如: Picture1.hDC 所以字体高度一般是这样计算的: lfHeight = PointSize * GetDeviceCaps(hDC, LOGPIXELSY) / 72 由于Screen对象的TwipsPerPixelX、TwipsPerPixelY属性可以得知一像素是多少缇,所以可以这样计算: lfHeight = PointSize * 20 / Screen.TwipsPerPixelY |
|
| 第8楼 zyl910 | 发表于 2006-09-22 22:05 |
| 中级用户 发帖 126 积分 282 | |
|
文本排版是很复杂的
用GetTextMetrics可以取得当前字体的排版信息,GetOutlineTextMetrics可以进一步得到TTF字体的排版信息 GetCharABCWidths、GetCharABCWidthsFloat可以的到字体的左右悬挂属性,用于非等宽字体或斜体状态,可以使一个一个字符的某一部分位于另一个字符的单元格内,如: fffffff 用GetTextExtentPoint32计算一字符串在该DC绘制后所占的尺寸 |
|
| 第9楼 stone830209 | 发表于 2006-09-25 07:12 |
| 初级用户 发帖 9 积分 25 | |
|
非常感谢,恕我愚钝,没看太懂,我再研究研究你的帖啊 ,谢谢啊
|
|
| 第10楼 pcwawa | 发表于 2006-11-01 10:32 |
| 初级用户 发帖 10 积分 118 | |
|
自己做个专用的字库和写字函数,或者自己设计CHR字体。
偶有一个制作CHR字库的软件,可制中文的CHR字库,不过每个文件最多只能放255个汉字。 |
|
| 第11楼 pcwawa | 发表于 2006-11-01 10:34 |
| 初级用户 发帖 10 积分 118 | |
|
如果你自己做字库,请先决定做等宽的字体还是做变宽的,实现起来大不相同啊。
|
|
| 第12楼 pcwawa | 发表于 2006-11-01 10:34 |
| 初级用户 发帖 10 积分 118 | |
|
回复完了才发现是stone,呵呵
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |