While I clearly believe in the importance of knowing the standards, I want to convince you as well. But rather than trying to persuade you by begging and pleading, I want to give you a small quiz to test your user interface knowledge. These questions should be a snap if you have read Designing for the User Experience and the Designed for Microsoft Windows logo requirements.
The menu command to display a program's About box should have an ellipsis, as with "About My Program…"
a) TrueStatic text controls are the best way to display uneditable text in a dialog box.
a) TrueWhen asking the user a question with a message box, the best approach is to ask the question, provide Yes and No buttons (and perhaps a Cancel or Help button, if appropriate), and the question mark symbol.
a) TrueA gray background indicates that a control is disabled.
a) TrueThe best way to report to the user the amount of free hard disk space is to use the GetDiskFreeSpace API function to determine the available disk space.
a) TrueThere is never a need for a window to change the position of an invisible caret.
a) TrueThe answer to all of these questions is false. Here are the details:
Contrary to common belief, an ellipsis does not mean that a dialog box follows. Rather, it means that more information other than a simple confirmation is required to carry out the command. Since no additional information is needed from the user to display the About box, this command should not have an ellipsis. Interestingly, the Microsoft Foundation Classes (MFC) application AppWizard incorrectly provides an ellipsis with the About box menu command text. Even Charles Petzold himself incorrectly states: "The programmer indicates that a menu item invokes a dialog box by adding an ellipsis (…) to the menu item." Other common commands that should not have an ellipsis are Properties, Settings, Preferences, and Help Topics.
While static text is the best control for dialog box labels, read-only edit controls are much more useful for displaying other types of text. For example, the Windows Explorer Properties dialog box uses read-only edit controls for all the property text. Using read-only edit controls is more useful than static text since it allows the user to select the text, copy the text to the clipboard, and scroll the text if it is wider than the edit control.
The question mark symbol (MB_ICONQUESTION) is no longer recommended for message boxes because it is now used consistently within Windows 98 to signify context-sensitive help. In its place, the warning and critical message types are recommended. Note that using Yes and No buttons is much better than using the OK and Cancel buttons for questions since it is easier for the user to figure out what to do no matter how the question is phrased.
Gray backgrounds are used to indicate that an object is read-only. Gray text is used to indicate that an object is disabled. By the way, this question was supposed to be the easy one.
The GetDiskFreeSpace API function is designed for hard disk volumes smaller than 2 GB, which is the limit with FAT16. With the new FAT32 file system, programs must use GetDiskFreeSpaceEx to handle hard disk volumes that are greater than 2 GB. (See the Designed for Microsoft Windows logo requirements, "Do Not Assume a Hard-Drive Size Limit of 2 GB.")
To allow accessibility aids such as the Windows Magnifier to work properly, programs must provide Windows a notification of the current keyboard focus. While this notification is performed automatically with the standard Windows controls, custom controls that move the keyboard focus within themselves (such as a custom list control) need to notify Windows of the current keyboard focus. While there are several ways of doing this, often the easiest way is to create an invisible caret and move the position of the caret within the control. (See the Designed for Microsoft Windows logo requirements, "Provide Notifications of the Keyboard Focus Location.")