是什么导致控制文本被切断?

时间:2016-09-16 12:05:15

标签: layout text vb6 dpi

我的VB6应用程序在某些最终用户PC上存在布局问题,但到目前为止,我们无法确定导致此问题的原因。

正常布局:enter image description here

布局破损:enter image description here

左侧的文字是单选按钮的标题。右上角的文字是标签。

我熟悉Windows控制面板中可能影响文本大小的两个不同设置,最初我们怀疑这是原因。在Windows 10中,它们是:

 Control Panel >
  Appearance and Personalization >
   Display >
    (1) "Use these display settings" > "Customize your display"
             or
    (2) "Set a custom scaling level"

(术语在早期的Windows版本中有所不同,但我认为功能相同?)

但是,在使用我们的应用测试这些设置时,

还有什么可能导致图片中显示的文字布局问题?

1 个答案:

答案 0 :(得分:2)

这似乎是由a Windows bug引起的。

描述&修复源网站中提到的如下:

  

如果您在安装时有高分辨率屏幕,Win7将默认安装更大的字体集(125%)。如果您选择返回标准字体大小(100%),Windows将保留一些大字体,即使其他所有字体都已调整为标准字体,导致使用这些字体的程序中断,因为文本并不总是适合GUI。

     

通过编辑Windows注册表,您可以获得原始的预期字体:

     
      
  • 打开开始菜单,输入regedit,然后按Enter键。

  •   
  • 找到密钥HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

  •   
  • 找到值MS Sans Serif 8,10,12,14,18,24

  •   
  • SSERIFF.FON更改为SSERIFE.FON

  •   
  • 查找MS Serif 8,10,12,14,18,24

  •   
  • SERIFF.FON更改为SERIFE.FON

  •   
  • 最后找到Courier 10,12,15

  •   
  • COURF.FON更改为COURE.FON

  •   
  • 重启系统,以使更改生效!

  •   
     

确切的字体名称可能因区域设置而异。

我能够在Windows 10上创建问题场景,并且使用我们的VB6应用程序重现了这个问题。我认为这证实了这一点。

Microsoft blog post似乎是此信息的权威原始来源。