От:
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;
Результат:
Красный прямоугольник
Вопрос: Почему?
Здравствуйте, 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/
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить