Re[5]: CreateDIBitmap в VCL компоненте
насчет CreateDIBitmap.
Ты неверно инициализируешь
вот пример на VC+
typedef struct tagBITMAPINFO_MY
{
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[256];
}
BITMAPINFO_MY;
BITMAPINFO_MY m_bitInfo;
ZeroMemory(&m_bitInfo, sizeof(m_bitInfo));
m_bitInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
m_bitInfo.bmiHeader.biWidth = m_sizeTotal.cx;
m_bitInfo.bmiHeader.biHeight = m_sizeTotal.cy;
m_bitInfo.bmiHeader.biPlanes = 1;
m_bitInfo.bmiHeader.biBitCount = 8; // — т.е. 256 цветов (1,2,4,8,24,32)
m_bitInfo.bmiHeader.biCompression = BI_RGB;
m_bitInfo.bmiHeader.biSizeImage = ((m_bitInfo.bmiHeader.biWidth*m_bitInfo.bmiHeader.biBitCount+31)/32)*4*m_bitInfo.bmiHeader.biHeight;
memset(m_bitInfo.bmiColors, 0, sizeof(m_bitInfo.bmiColors));
// Init my colors
m_bitInfo.bmiColors[1].rgbBlue = 0;
m_bitInfo.bmiColors[1].rgbGreen = 0;
m_bitInfo.bmiColors[1].rgbRed = 0;
m_bitInfo.bmiColors[0].rgbBlue = 255;
m_bitInfo.bmiColors[0].rgbGreen = 255;
m_bitInfo.bmiColors[0].rgbRed = 255;
m_bitInfo.bmiColors[2].rgbBlue = 0;
m_bitInfo.bmiColors[2].rgbGreen = 255;
m_bitInfo.bmiColors[2].rgbRed = 0;
m_bitInfo.bmiColors[3].rgbBlue = 255;
m_bitInfo.bmiColors[3].rgbGreen = 0;
m_bitInfo.bmiColors[3].rgbRed = 0;
m_hBitmapSection = ::CreateDIBSection (m_dcMemoryToDraw.m_hDC, (BITMAPINFO*)&m_bitInfo.bmiHeader, DIB_RGB_COLORS, (PVOID*)&m_pvSection, 0, 0);
if ( !m_hBitmapSection ) exit(1);
//--------------------
Здесь создается секция, а по анологии создавай CreateDIBitmap
Пока на собственное сообщение не было ответов, его можно удалить.