TB VB6的.frm导入TB后字体宋体丢失变成MS Sans Serif的问题和解决办法VB6 的 .frm 文件字体由三项共同决定:
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134 '★关键:134 = GB2312简体中文字符集
EndPropertytwinBASIC 早期导入解析缺陷导入 VB6 窗体时,如果解析器忽略 / 丢失 Charset=134,只读取字体名。部分版本导入逻辑:找不到匹配「字体名 + 字符集」组合 → 回退到默认 MS Sans Serif。
VB6 一个容易踩坑特性:很多开发者窗体没有手动强制设置 Font,依赖 VB6 中文 IDE 全局默认宋体;这种窗体在 frm 文件里根本没有 Font 块。→ twinBASIC 导入识别不到字体声明,直接填充默认字体 MS Sans Serif。
编码 / 中文名称匹配问题:字体名 "宋体"(中文名称),部分解析器对中文字符识别异常;英文系统标准内部名称是 SimSun。
MS Sans Serif 本身不含中文轮廓,只是中文 Windows 系统会自动兜底渲染中文,字号、间距和宋体完全不一致,界面排版错乱。
解决办法:选 微软雅黑 9号字体,这样就能写入。
BeginProperty Font
Name = "微软雅黑"
Size = 9
EndProperty