Добрый день!
Задача следующая: на 8-битном битмапе рисовать различные геометрические фигуры
с заданным цветом (оттенком) заливки. Реализую это следующим образом:
/* BITMAPINFO structure */
BITMAPINFO *AdibBMI = (BITMAPINFO *)malloc( sizeof( BITMAPINFO ) + sizeof( RGBQUAD ) * 0xff );
AdibBMI->bmiHeader.biSize = sizeof( BITMAPINFO );
AdibBMI->bmiHeader.biWidth = 200;
AdibBMI->bmiHeader.biHeight = 200;
AdibBMI->bmiHeader.biPlanes = 1;
AdibBMI->bmiHeader.biBitCount = 8;
AdibBMI->bmiHeader.biCompression = BI_RGB;
for( int i = 0; i < 0x100; i++ ) {
RGBQUAD quad = { i, i, i, 0 };
AdibBMI->bmiColors[i] = quad;
}
/* DIB section */
HDC AdibDC = CreateCompatibleDC( NULL );
HBITMAP AdibBitmap = CreateDIBSection( AdibDC, AdibBMI, DIB_PAL_COLORS, (void **) &AdibBits, NULL, 0 );
SelectObject( AdibDC, AdibBitmap );
SelectObject( AdibDC, GetStockObject( WHITE_BRUSH ) );
Ellipse( AdibDC, 0, 0, 20, 10 );
free( AdibBMI );
DeleteDC( AdibDC );
DeleteObject( AdibBitmap );
Заливка всегда получается черной.
В чем может быть проблема?