SetDIBColorTableを使用するには?

解決


C3055  2009-07-07 10:40:51  No: 101878  IP: 192.*.*.*

VB初心者です。どなたかご教授をお願いします。
VB2005を使用しています。

8Bitのモノクロ画像を高速で表示しようとしています。
しかしうまく表示できません。

カラーテーブルの値を変更する…。までは調べたのですが
SetDIBColorTable関数の戻り値が"0"となります。

*コード*

Dim bmpInfo As BITMAPINFOHEADER
Dim bmiColors(255) As RGBQUAD 

bmpInfo.biBitCount = 8
bmpInfo.biClrImportant = 0
bmpInfo.biClrUsed = 0
bmpInfo.biCompression = 0
bmpInfo.biHeight = 480
bmpInfo.biPlanes = 1
bmpInfo.biSize = 40 ' SizeOf(BITMAPINFOHEADER)
bmpInfo.biSizeImage = 307200
bmpInfo.biWidth = 640
bmpInfo.biXPelsPerMeter = 0
bmpInfo.biYPelsPerMeter = 0

’カラーパレットを変更
For i = 0 To 255
    bmiColors(i).rgbBlue = i
    bmiColors(i).rgbGreen = i
    bmiColors(i).rgbRed = i
    bmiColors(i).rgbReserved = 0
Next i

SetDIBColorTable(hdc, 0, 255, bmiColors(0))
↑戻り値が0となってしまします。

皆様、よろしくお願いします。

編集 削除
K.J.K.  2009-07-07 13:57:13  No: 101879  IP: 192.*.*.*

ここは、VB6 以前用です。
VB.NET ならば、VB.NET 掲示板の方でお願いします。

以下の3点をチェックしてください。
1、hDC には CreateCompatibleDC の戻り値を指定していますか?
2、その hDC は、CreateDIBSection の戻り値を SelectObject して
おいてありますか?
3、CreateDIBSection で作った DIB は 8bits color の DIB になっていますか?

編集 削除
C3055  2009-07-07 17:54:47  No: 101880  IP: 192.*.*.*

申し訳ありませんでした。
VB.NET 掲示板へ移動します。
とりあえず、解決を押します。

編集 削除