Gray and Dithered Bitmap Functions

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Gray and Dithered Bitmap Functions.

Gray Bitmap Functions**

MFC provides two functions for giving a bitmap the appearance of a disabled control.

Comparison of gray and original icon versions

AfxDrawGrayBitmap Draws a gray version of a bitmap.
AfxGetGrayBitmap Copies a gray version of a bitmap.

Dithered Bitmap Functions

MFC also provides two functions for replacing a bitmap's background with a dithered pattern.

Comparison of dithered and original icon versions

AfxDrawDitheredBitmap Draws a bitmap with a dithered background.
AfxGetDitheredBitmap Copies a bitmap with a dithered background.

AfxDrawGrayBitmap

Draws a gray version of a bitmap.

void AFXAPI AfxDrawGrayBitmap(
    CDC* pDC,  
    int x,  
    int y,  
    const CBitmap& rSrc,  
    COLORREF crBackground); 

Parameters

pDC
Points to the destination DC.

x
The destination x-coordinate.

y
The destination y-coordinate.

rSrc
The source bitmap.

crBackground
The new background color (typically gray, such as COLOR_MENU).

Remarks

A bitmap drawn with AfxDrawGrayBitmap will have the appearance of a disabled control.

Comparison of gray and original icon versions

Example

void CDCView::DrawGrayBitmap(CDC* pDC)
{
   CBitmap bm;
   bm.LoadBitmap(IDB_BITMAP1);
   AfxDrawGrayBitmap(pDC, 10, 50, bm, GetSysColor(COLOR_MENU));
}

AfxGetGrayBitmap

Copies a gray version of a bitmap.

void AFXAPI AfxGetGrayBitmap(
    const CBitmap& rSrc,  
    CBitmap* pDest,  
    COLORREF crBackground); 

Parameters

rSrc
The source bitmap.

pDest
The destination bitmap.

crBackground
The new background color (typically gray, such as COLOR_MENU).

Remarks

A bitmap copied with AfxGetGrayBitmap will have the appearance of a disabled control.

Comparison of gray and original icon versions

Example

   CBitmap bm;
   bm.LoadBitmap(IDB_BITMAP1);
   CBitmap bmGray;
   AfxGetGrayBitmap(bm, &bmGray, GetSysColor(COLOR_MENU));

AfxDrawDitheredBitmap

Draws a bitmap, replacing its background with a dithered (checker) pattern.

void AFXAPI AfxDrawDitheredBitmap(
    CDC* pDC,  
    int x,  
    int y,  
    const CBitmap& rSrc,  
    COLORREF cr1  ,  
    COLORREF cr2); 

Parameters

pDC
Points to the destination DC.

x
The destination x-coordinate.

y
The destination y-coordinate.

rSrc
The source bitmap.

cr1
One of the two dither colors, typically white.

cr2
The other dither color, typically light gray (COLOR_MENU).

Remarks

The source bitmap is drawn on the destination DC with a two-color ( cr1 and cr2) checkered pattern replacing the bitmap's background. The background of the source bitmap is defined as its white pixels and all pixels matching the color of the pixel in the upper-left corner of the bitmap.

Comparison of dithered and original icon versions

Example

void CDCView::DrawDitheredBitmap(CDC* pDC)
{
   CBitmap bm;
   bm.LoadBitmap(IDB_BITMAP1);
   AfxDrawDitheredBitmap(pDC, 10, 50, bm, RGB(255,255,255),
      GetSysColor(COLOR_BTNFACE));
}

AfxGetDitheredBitmap

Copies a bitmap, replacing its background with a dithered (checker) pattern.

void AFXAPI AfxGetDitheredBitmap(
    const CBitmap& rSrc,  
    CBitmap* pDest,  
    COLORREF cr1  ,  
    COLORREF cr2); 

Parameters

rSrc
The source bitmap.

pDest
The destination bitmap.

cr1
One of the two dither colors, typically white.

cr2
The other dither color, typically light gray (COLOR_MENU).

Remarks

The source bitmap is copied to the destination bitmap with a two-color ( cr1 and cr2) checkered pattern replacing the source bitmap's background. The background of the source bitmap is defined as its white pixels and all pixels matching the color of the pixel in the upper-left corner of the bitmap.

Comparison of dithered and original icon versions

Example

   CBitmap bm;
   bm.LoadBitmap(IDB_BITMAP1);
   CBitmap bmDith;
   AfxGetDitheredBitmap(bm, &bmDith, RGB(255,255,255),
      GetSysColor(COLOR_BTNFACE));

See Also

Macros and Globals