1

MFCアプリケーションを開発しています。VisualStudioで自分の.bmpイメージを使用しています。[リソースの追加]ダイアログからbmpをインポートし、一意の名前を付けてCImageListを作成します。次に、リストコントロールで画像リストを設定します。

CListCtrl m_CIDList;
CImageList m_ImgList;

//.........

m_ImgList.Create(IDB_MYBITMAP, 15, 0, RGB(255, 255, 255));
m_CIDList.SetImageList(&m_ImgList, LVSIL_STATE);

私が抱えている問題は奇妙です。特定の色のみが表示されます。通常は赤と灰色のみです。さまざまなビット深度を使用してみましたが、何も変わりません。VSの画像エディタでbmpがどのように表示されるかを次に示します。

エディターのBMP画像

アイコンがリストコントロールに表示されている場合、赤の一部のみが表示され、すべての緑が灰色で表示されます。

何が起こっているのかよくわかりませんが、何が起こっているのか誰かが知っていますか?

ソリューションの更新

m_ImgList.Create(15, 15, ILC_MASK | ILC_COLOR24, 0, 0);
CBitmap bmp;
bmp.LoadBitmap(IDB_MYBITMAP);
m_ImgList.Add(&bmp, RGB(255, 255, 255));
m_CIDList.SetImageList(&m_ImgList, LVSIL_STATE);
4

1 に答える 1

4

イメージ リストが作成され、色の値が指定されていない場合、デフォルトのカラー モードはILC_COLOR4、イメージに対して 16 の定義済みの色のみを許可するモードです。ビットマップ内のすべての色が、これらの 16 色にマップされています。

ILC_COLOR24フルカラー ビットマップに使用します。

于 2012-06-28T17:27:27.350 に答える