SUMMARY
In versions of Windows earlier than 3.0, it is possible to align columns of
information in a list box with spaces, because all characters in the system
font are the same width. In Windows 3.0, the system font is proportionally
spaced with letters of differing widths, which prevents this technique from
being usable.
Tabs can be used to align columns in a list box. The LBS_USETABSTOPS style
must be specified when the list box is created. Then, set a tab to
correspond with the position of each character of each numeric column. The
tabs are specified in dialog units, which are one-fourth of a character
width. For example, a three-digit field that should align 12 characters
from the left edge of the dialog box can be implemented by setting tabs at
positions 40, 44, and 48. This is illustrated below:
+------------+
|text xxx|
|longer xx|
^^^
||+- position 48
|+-- position 44
+--- position 40
After determining the text to insert in the list box, convert the spaces to
the appropriate number of tabs as the following code fragment demonstrates:
sprintf(szNumBuffer, "%3d", Number);
for (i = 0; i < 3; i++)
if (szNumBuffer[i] == ' ')
szNumBuffer[i] = '\t';
This code uses the three tabs set above.
There is a file in the Microsoft Download Center named RIGHTJUS that
illustrates this convention.
Note This sample is applicable only to Windows 3.1, NOT to Win32.