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

AfxDrawGrayBitmapDraws a gray version of a bitmap.
AfxGetGrayBitmapCopies 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

AfxDrawDitheredBitmapDraws a bitmap with a dithered background.
AfxGetDitheredBitmapCopies a bitmap with a dithered background.

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));
}

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));

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));
}

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));

Macros and Globals

Show: