The following list shows some combinations that are safe to use and others that are not. Unsafe because unrelated colors are mixed Button Text on Window Background Unsafe because unrelated colors are mixed Window Background on Window Text Unsafe because colors are reversed Button Face on Button Text Unsafe because colors are reversed The same rules apply when using private colors that the user can select in your application. Coloring Graphic Objects When possible, be prepared to draw monochrome images that contrast with the background color. Graphical objects present special challenges. If you normally use a color image, you can include a monochrome version and use that on monochrome displays, when the user chooses a nondefault button face color, or when the High Contrast option is selected in Control Panel.
Icons are easy.
Multicolored images present more problems. If you can't provide a monochrome version, you can try creating one on the fly by identifying light and dark areas as foreground and background. For example, a bitmap that has a multicolored object on a white background can be mapped with all colors other than white in the appropriate system foreground color and with white in the system background color. These colors can be reversed for images designed with a dark background. Backgrounds That Obscure Text Draw text on a plain, contrasting background to make it much easier to read.