Mono Bitmap January '90 Ed Mills This application loads a monochrome bitmap from its resource and displays it on the screen. That sounds pretty unremarkable until you learn about all the inversion problems invloved in placing bitmaps on both the CGA and EGA displays. In addition to handling the relative inversion from the CGA to EGA, MONOBMAP detects the monchrome displays that have fixed the inversion problem and handles them as well. The idea is to load a monochrome bitmap, blit it to a bitmap compatible with the screen, and check for any inversion. To understand why the CGA and EGA are inverted relative to one another please refer to the KnowledgeBase article "Color Verses Monochrome Bitmap Conversions", Q51230. The key points are that when blitting a monochrome bitmap to the CGA, it becomes a mono to mono blit which maps one bits to white, whereas blitting to the EGA is a mono to color blit which maps one bits to the forground color. Note that some monochrome devices model after the EGA in that they map one bits to the forground color. This is why we need to check for inversions. We can't tell by querying the device. In testing this technique, be sure to try reversing the window background and text colors to switch the default image bundle colors. The sample prints these out so you can see when they are inverted. SenseBMapInversion must be called whenever there is a WM_SYSCOLORCHANGE message or whenever the bitmap is used. This is because monochrome devices can change their inversion sense when the colors change.