Re[3]: SetDIBits() в Win98 и WinNT
От: Вадим Никулин Россия Здесь
Дата: 24.09.03 05:46
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Patalog, Вы писали:

P>>Хотелось бы посмотреть, что это за MY_BITMAPINFO и как ты его инициализируешь.

А>Пожалуйста


А>struct MY_BITMAPINFO

А>{ BITMAPINFOHEADER bmiHeader;
А> RGBQUAD bmiColors[30];
А>};
А>MY_BITMAPINFO *bmp_data=new MY_BITMAPINFO;
А вот здесь неплохо сделать memset( bmp_data, 0, sizeof(MY_BITMAPINFO) ), там ведь есть еще поля!

А> bmp_data->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);

А> bmp_data->bmiHeader.biBitCount=8;
А> bmp_data->bmiHeader.biPlanes=1;
А> bmp_data->bmiHeader.biCompression=BI_RGB;
А> bmp_data->bmiHeader.biClrUsed=30;
А> bmp_data->bmiHeader.biClrImportant=30;
Интересно, bitCount==8, а значения RGB?

А> for (int i=0;i < 30;i++)

А> bmp_data->bmiColors[i]=TO_RGB(8*i,8*i,8*i);
А> bmp_data->bmiColors[30-1]=TO_RGB(0,160,0);
А> bmp_data->bmiColors[30-2]=TO_RGB(255,255,255);
А> bmp_data->bmiColors[30-3]=TO_RGB(0,0,0);
А> bmp_data->bmiColors[30-4]=TO_RGB(128,128,128);
А> bmp_data->bmiColors[30-5]=TO_RGB(192,192,192);
А> bmp_data->bmiColors[30-6]=TO_RGB(0,0,160);
А> bmp_data->bmiColors[30-7]=TO_RGB(255,0,0);
А> bmp_data->bmiColors[30-8]=TO_RGB(255,255,0);
А> bmp_data->bmiColors[30-9]=TO_RGB(160,0,0); // TO_RGB возвращает объект RGBQUAD по заданым оттенкам

А>я что-то забыл сделать ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.