How to Select a Custom Control

So what should you do if you need to create or buy a custom control? My advice is to make sure that the control looks and behaves like a standard control as much as possible. Most third-party controls give you significant control over their appearance and behavior, so make sure standard appearance and behavior are among the options. The goal should be that a nonprogrammer user (that is, someone who doesn't know what is standard) can make good use of your program yet have no clue that he is using a custom control.

TIP
Choose custom controls that look and behave like standard controls. Ideally, users should have no clue that they are using a custom control.

Interestingly, if you look at the advertisements for custom controls in programmer's magazines, the ads typically go out of their way to make it painfully obvious that the control is nonstandard and looks nothing like the standard controls. This makes sense, of course, since the ad wouldn't get anyone's attention if the control looked like a standard control, but definitely don't use this marketing technique as a guide for user interface design.

When evaluating a custom control, I recommend that you ask yourself the following questions:

  • Does the control look like a standard control? Does it look good? Does it look normal? Do you have significant control over its appearance? Can you set the control's fonts? Are its 3-D effects not overdone?
  • Does the control behave like a standard control? Do you have significant control over its behavior? Does the control support the standard mouse and keyboard behaviors defined in Designing for the User Experience? Does the control work with either the mouse or the keyboard?
  • Does the control use system colors and metrics? Can you change the colors? Can you select subdued colors? Does it satisfy the Designed for Microsoft Windows logo requirements, especially the accessibility requirements?
  • If applicable, does the control use the standard 3-D frames? Does it use the DrawEdge API function to employ the same frame styles as the standard controls? Note that using DrawEdge is important because it makes the control look consistent with other controls now and in the future (if the DrawEdge algorithm is ever changed).
  • If applicable, does the control support the standard appearances, such as normal, pressed, unavailable (disabled), input focus, option-set, and mixed-value?

If the custom control scores well on all of these points, the control is probably appropriate to use and a pleasure for your user to work with.



Developing User Interfaces for Microsoft Windows
Developing User Interfaces for Microsoft Windows
ISBN: 0735605866
EAN: 2147483647
Year: 2005
Pages: 334

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net