Base de Conocimientos Técnicos

Buttons and Text do not fit in their windows - running SM on Windows 7

Hint Ref: 021104260007
Hint Date: 26/04/2011

Hint Details:

ISSUE

 

Trying to run SM on a Windows 7 PC, many of the buttons and text do not fit in the Windows, which require to be manually resized every time.

SYMPTOM

If the user right clicks on their desktop and selects 'Screen Resolution' and then 'Make Text and other items bigger or smaller', the 'default' is 'Medium - 125% ' rather than the usual 'Smaller - 100%'

RESOLUTION

Below is a summary of what is happening and the details of the fix required, provided by David Musgrave of Microsoft Dynamics GP;

***NOTE: Please note that David Musgrave's article is reproduced here for purely for the convenience of our uses and should anyone decide to implement any of the recommendations suggested, they do so entirely at their own risk. RADical Systems provides no warrantees or guarantees, of any kind, as to functionality, fitness for use or indeed any other assurances of any kind. Any risk lies solely with the user. We recommend that you always ensure you have a full and valid (restorable) backup of everything you wish to be able to restore, before making any changes to your systems.***

"Research showed that many users with high resolution monitors (particularly LCD flat screens) were running the monitors at lower resolutions than the native resolution of the screen. This was usually because at the native resolution, the fonts were becoming too small to read, so the users would decrease the resolution.

Windows includes a facility to increase font and window sizes while keeping the screen at the native resolution.  This is a much better method of increasing the font size as it can produce much smoother images by using many more, smaller pixels. The really significant issue is, unlike CRT monitors, flat-panel LCD monitors have a fixed pixel size, or "resolution", and that when users change to a lower resolution (in order to increase text size) the system has to re-sample the lower-resolution display image into its fixed resolution causing a significant degradation in display quality: not just text looks worse, everything looks worse.

A change was made for Windows 7, to set the screen resolution to the monitor's native resolution and if the screen is over a certain resolution to default the font size 120 DPI (dots per inch). This is approximately 125% of normal 96 DPI (100%). When the system defaults to 125% DPI it also adjusts the MS Sans Serif font to be bigger.  If the user then decides to set the DPI back to 100%, then TrueType fonts, which are scalable, adjust as expected. But the bitmap MS Sans Serif font does not: it remains at the larger size, hence our issue. This problem does not occur if Windows 7 keeps DPI at 100% when it is first installed.

In my case, the internal Windows 7 Enterprise build had an appropriate video driver for my machine and was able to go to the native resolution (1920 x 1200) and default to 125% DPI.  As my machine is older, when I installed the Windows 7 Ultimate build, it did not have the video driver and so defaulted to a lower resolution at 100% DPI.  Once I installed the video driver from Windows Update, I was able to get to the native resolution and remain at 100% DPI.  Because the initial setting was 100% DPI, the MS Sans Serif font was the correct size.

I realised that the issue is not an internal problem, but can occur on any Windows 7 system that has a high resolution monitor for which drivers can be found during the initial install and so default with 125% DPI. If the user returns to 100% DPI, the MS Sans Serif bitmap font will remain larger.

The solution took a while to find, but is really simple.  We just need to make some registry changes and reboot.

Note: The registry changes do not take effect until the system has been restarted. You MUST reboot after making the registry changes.

The Registry setting HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\MS Sans Serif 8,10,12,14,18,24 is set to SSERIFF.FON on a system which started at 125% DPI. The setting is set to SSERIFE.FON on a system which started at 100% DPI.  Notice that one character of the file name changes from F to E.

The actual font files used might be different on Windows systems for other languages or code pages. See the table below for the file names:

125% DPI font file 100% DPI font file
SSERIFF.FON SSERIFE.FON 
SSERIFFE.FON SSERIFEE.FON 
SSERIFFG.FON SSERIFEG.FON 
SSERIFFR.FON SSERIFER.FON 
SSERIFFT.FON SSERIFET.FON 
SSEF1255.FON SSEE1255.FON 
SSEF1256.FON SSEE1256.FON 
SSEF1257.FON SSEE1257.FON 
SSEF874.FON SSEE874.FON 
While we are fixing the MS Sans Serif font, we can also fix the MS Serif and Courier fonts. These are the Registry settings MS Serif 8,10,12,14,18,24 and Courier 10,12,15 values in the same registry key. See the table below for the file names:

125% DPI font file 100% DPI font file 125% DPI font file 100% DPI font file
SERIFF.FON SERIFE.FON COURF.FON COURE.FON 
SERIFFE.FON SERIFEE.FON COURFE.FON COUREE.FON 
SERIFFG.FON SERIFEG.FON COURFG.FON COUREG.FON 
SERIFFR.FON SERIFER.FON COURFR.FON COURER.FON 
SERIFFT.FON SERIFET.FON COURFT.FON COURET.FON 
SERF1255.FON SERE1255.FON COUF1255.FON COUE1255.FON 
SERF1256.FON SERE1256.FON COUF1256.FON COUE1256.FON 
SERF1257.FON SERE1257.FON COUF1257.FON COUE1257.FON 
To fix the system you need to change the settings to new file names (changing the appropriate letter from F to E) and reboot.

Note: The registry changes do not take effect until the system has been restarted. You MUST reboot after making the registry changes.

Below are the contents of Font Fix.reg file to make the changes for an English system:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"MS Sans Serif 8,10,12,14,18,24"="SSERIFE.FON"
"MS Serif 8,10,12,14,18,24"="SERIFE.FON"
"Courier 10,12,15"="COURE.FON"


An archive of the Font Fix.reg file for an English system is also provided as an attachment to this account (Windows 7 Font Fix - UK VERSION ONLY).

While I have focused on the MS Sans Serif bitmap font (as this is the one used by Microsoft Dynamics GP) as well as the MS Serif and Courier fonts, this issue is likely to affect other bitmap fonts.  Other bitmap fonts can be found in the \Windows\Fonts folder as *.FON files and in the same registry location."


(Please Note: This Procedure can be destructive and should only be used by Advanced Users.  RADical Systems (UK) Limited or its Partners cannot be held responsible, in anyway, for any consequence of using this hint or any other Database Function, Procedure or SQL command.  Responsibility resides solely with the user.  

IT IS HIGHLY RECOMMENDED THAT A FULL AND VALID SPACE MANAGER DATABASE BACKUP IS TAKEN AND VERIFIED AS VALID BEFORE MAKING ANY CHANGES TO THE DATABASE.)