> RGB、BGR,点順次、線順次、面順次等もいろいろためしてだめでした
じゃ「トップダウン DIB とボトムアップ DIB」辺りで引っ掛かっているのかもしんない
http://msdn.microsoft.com/ja-jp/library/cc370952.aspx
// 473x356 の pixel data を用意
const bool botttom_up = true;
const SIZE size = { 473, 356 };
const int stride = ((24 * size.cx + 31) / 32) * 4;
std::vector<BYTE> buffer(stride * size.cy);
for (int y=0; y < size.cy; ++y) {
for (int x=0; x < size.cx; ++x) {
const int p = stride * (botttom_up ? (size.cy - 1) - y : y) + (3 * x);
buffer[p + 0] = (y & 0xff); // B
buffer[p + 1] = (x & 0xff); // G
buffer[p + 2] = 0x00; // R
}
}
// Gdiplus を使って HDC に描画
Gdiplus::Bitmap bitmap(
size.cx, size.cy,
(botttom_up ? -stride : stride),
PixelFormat24bppRGB,
&buffer[0] + (botttom_up ? stride * (size.cy - 1) : 0)
);
Gdiplus::Graphics graphics(HDC);
graphics.DrawImage(&bitmap, 0, 0);
> 青(0,0,255)で埋めたメモリを渡しても、正しく青ベタで埋めてくれるときとそうでな
> いときがあります
正しく埋めてくれる時もあるのか…だとしたら先の回答は関係ないかも。