|
안녕하세요~ 좋은 주말이네요~ ㅡㅡ;
StretchDIBis를 이용해서 화면에 간단한 RGB색상을 표시하려고 합니다.
VC++에서는 잘 되는데 뭐가 문제인지 전혀 모르겠네요.. .
BYTE *pBits = new BYTE[256*3];
for()
{
pBits에 값을 채우고
}
BITMAPINFO bi;
bi.bmiHeader.biSize = 256;
bi.bmiHeader.biWidth = 1;
bi.bmiHeader.biHeight = 256;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 24;
bi.bmiHeader.biCompression = BI_RGB;
bi.bmiHeader.biSizeImage = 256*3;
bi.bmiHeader.biXPelsPerMeter = 0;
bi.bmiHeader.biYPelsPerMeter = 0;
bi.bmiHeader.biClrUsed = 0;
bi.bmiHeader.biClrImportant = NULL;
해서 비트맵헤더에 정보를 채우고...
StretchDIBits(Image2->Canvas->Brush->Handle, 0, 0, 1, 256, 0, 0, 1, 256, pBarBits, &bi, DIB_RGB_COLORS, SRCCOPY);
요렇게 그리는데요...
어떤 방법을 써도 안되네요.
/*
TMemoryStream *pMyStream = new TMemoryStream();
pMyStream->WriteBuffer(pBits , 3*256);
pBitmap->LoadFromStream(pMyStream);
// Image2->Canvas->Brush->Bitmap = pBitmap;
Image2->Canvas->Draw(0, 0, pBitmap);
*/
이 방법도 써보고...
화면에 하얗게 나올뿐이네요...
어디가 잘못된건지 Borland C++ 고수님들의 조언 좀 얻고 싶습니다.
|