CreateBitmap
От: vcvbvj  
Дата: 18.12.02 15:40
Оценка:
Привет всем!

Код:

CStatic* p=(CStatic*) GetDlgItem(IDC1);
CRect rect; p->GetClientRect(&rect);
ULONG* lpBmpBuf=new ULONG [rect.Width()*rect.Height()];
for (int i=0;i<rect.Width()*rect.Height();i++)
lpBmpBuf[i]=RGB(0,0,255); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
HBITMAP hBmp=::CreateBitmap(rect.Width(),rect.Height(),1,32,lpBmpBuf);
p->SetBitmap(hBmp);
delete [] lpBmpBuf;

Результат:

Красный прямоугольник

Вопрос: Почему?
Re: CreateBitmap
От: TSS Россия http://www.sdl.ru
Дата: 18.12.02 15:58
Оценка: 1 (1)
Здравствуйте, vcvbvj, Вы писали:


V>Код:


V>CStatic* p=(CStatic*) GetDlgItem(IDC1);

V>CRect rect; p->GetClientRect(&rect);
V>ULONG* lpBmpBuf=new ULONG [rect.Width()*rect.Height()];
V>for (int i=0;i<rect.Width()*rect.Height();i++)
V> lpBmpBuf[i]=RGB(0,0,255); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
V>HBITMAP hBmp=::CreateBitmap(rect.Width(),rect.Height(),1,32,lpBmpBuf);
p->>SetBitmap(hBmp);
V>delete [] lpBmpBuf;

V>Результат:


V>Красный прямоугольник


V>Вопрос: Почему?


Есть подоздрение, что из-за того, что CreateBitmap() принимает CONST VOID * lpvBits, то биты (читай: цветовые компоненты) должны быть в обратном порядке.
Но я могу ошибатся.
Signed, [TSS] /SDL/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.