windows字体问题

windows字体问题(Win7)
1. 乱码
某些Delphi写的软件字体乱码;
区域/语言等全改美国/英语, 然后再改成中国/中文, 3个地方, 以上操作完成后正常

2. 语言标识代码
如中文 0804
#define MAKELANGID(p, s) ((((WORD )(s)) << 10) | (WORD )(p))
0804
#define LANG_CHINESE 0x04
#define SUBLANG_CHINESE_SIMPLIFIED 0x02

0409
#define LANG_ENGLISH 0x09
#define SUBLANG_ENGLISH_US 0x01

3. 字体映射/替代
如: MS Shell Dlg
VS-C++ 的资源字体名:MS Shell Dlg
用GetObject 获取字体名字为 MS Shell Dlg 2
实际中文显示字体为: Tahoma 和 宋体(SimSun)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
MS Shell Dlg = Microsoft Sans Serif
MS Shell Dlg 2 = Tahoma

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
Microsoft Sans Serif=
SIMSUN.TTC,SimSun
MINGLIU.TTC,PMingLiU
MSGOTHIC.TTC,MS UI Gothic
BATANG.TTC,Batang

Tahoma=
SIMSUN.TTC,SimSun
MINGLIU.TTC,PMingLiU
MSGOTHIC.TTC,MS UI Gothic
BATANG.TTC,Batang

4. FontCreator91 合并字体
a. 打开字体
b. 插入/字符 输入代码点: $3401-$9FBB
c. 打开其他字体, 选择对应代码点范围复制
d. 特殊粘贴
e. 保存/导出字体

5. 宋体字体替换问题
修改雅黑字体名称改成宋体, 然后安装, 发现部分软件正常, 部分还是宋体
原因: 安装时提示覆盖,当实际上并没有覆盖, 因为注册的名称不一样
原始的名字: 宋体和新宋体
新的名字: 宋体

 6. 宋体12号字无法开启ClearType, 因为字体本身设置了不支持大小, 当字体太小时实际使用的是直接贴图,

贴图数据可以从FontCreator的 字体-属性-未支持表 中看到, 删除这些数据可以开启ClearType, 但是效果不会太好

posted @ 2023-02-17 11:20  Yofoo  阅读(129)  评论(0编辑  收藏  举报