Fix: Windows XP Choose Color Dialog Only Allows 2 Digits, Not 3

Contributor Icon Contributed by Troy Newton  
Tag Icon Tagged: Windows  

This bug has to do with font sizes, display settings and XP not being “DPI Aware”. To fix this, simply modify the COMDLG32.DLL file by increasing the input box size. This modification does not cause any problems at all.

 1. Download “Resource Hacker” and install it:
    http://www.angusj.com/resourcehacker/
   
 2. Backup the original. Open the Run box and enter:
    xcopy C:\WINDOWS\system32\COMDLG32.DLL C:\WINDOWS\system32\COMDLG32.DLL.bak
   
 3. Run “Resource Hacker” and open:
    C:\WINDOWS\system32\COMDLG32.DLL
   
 4. Expand “Dialog”.
 
 5. Expand “CHOOSECOLOR”.
 
 6. Click on “1033″.
 
 7. In the right side, change the “18″ to “20″ (all 6)
    (, 18, 12) to (, 20, 12)

CONTROL “”, 703, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 216, 124, 18, 12
CONTROL “&Sat:”, 724, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 194, 140, 20, 9
CONTROL “”, 704, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 216, 138, 18, 12
CONTROL “&Lum:”, 725, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 194, 154, 20, 9
CONTROL “”, 705, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 216, 152, 18, 12
CONTROL “&Red:”, 726, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 243, 126, 24, 9
CONTROL “”, 706, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 269, 124, 18, 12
CONTROL “&Green:”, 727, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 243, 140, 24, 9
CONTROL “”, 707, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 269, 138, 18, 12
CONTROL “Bl&ue:”, 728, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 243, 154, 24, 9
CONTROL “”, 708, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 269, 152, 18, 12

 (If your numbers are different just increase your
  number that’s in the same place as 18 above by 2)

 8. Click on “Compile Script”, at top.
 
 9. Select “File->Save As” and save to “C:\COMDLG32.DLL”

10. Now you need to swap the file with the one in
    \system32\, but you can only do so when Windows
    isn’t running, so…
   
11. Copy it using the “Recovery Console”:
 a) Insert the Windows CD and restart.
 b) When setup begins, choose the “Repair or Recover”
    option by pressing “R”.
 c) Once at the command prompt, enter:
     copy C:\COMDLG32.DLL C:\WINDOWS\system32\COMDLG32.DLL
    and again:
     copy C:\COMDLG32.DLL C:\WINDOWS\system32\dllcache\COMDLG32.DLL

12. Restart and test it out!

13. Save a copy of your modified COMDLG32.DLL in case you
    need to replace it again. I keep two backups:
     COMDLG32.DLL_SP3_Original.bak
     COMDLG32.DLL_SP3_Modified.bak

 

1 Comment -


  1. Anonymous said on October 30, 2008

    I found an easier way to replace the comdlg32.dll file, although I haven’t tried it yet (if you do please report your experience).

    Simply copy your modified file to C:WINDOWSsystem32dllcache overwriting the existing one, then delete the one in C:WINDOWSsystem32 after which the Windows File Protection wakes up and replaces the deleted file with your modified one. You will probably still need to restart.

    ju_c

 

RSS feed for comments on this post. TrackBack URL

Leave a comment -