2016-09-16 44 views
1

我的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不同,但我認爲功能是相同的)

然而在與我們的應用程序沒有測試這些設置重現問題

還有什麼可能導致圖像中顯示的文字佈局問題?

回答

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.FONSSERIFE.FON

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

  • 變化從SERIFF.FONSERIFE.FON

  • 最後找到COURF.FONCourier 10,12,15

  • 更改爲COURE.FON

  • 重新啓動系統,以使更改生效!

確切的字體名稱可能因地區設置而異。

我能夠在Windows 10上創建問題場景,並且在我們的VB6應用程序中再現了這個問題。我認爲這證實了這一點。

A Microsoft blog post似乎是此信息的權威性原始來源。