기존의 리소스는 그대로 두고 ToolBar에 사용할 256색 이상의 Bitmap Image List를 하나 만듬니다. 그리고 나서 CToolBarCtrl의 SetImageList(), SetHotImageList(), SetDisabledImageList()를 이용하면 간단히 256이상의 ToolBar를 만들 수 있습니다. 예제를 참고하세요.
void CToolBar256::SetBitmap(UINT nIDResource, CSize ImageSize, UINT nButton, COLORREF colMask)
{
CImageList ToolBarImageList;
CBitmap ToolBarBitmap;
ToolBarBitmap.LoadBitmap(nIDResource);
ToolBarImageList.Create(ImageSize.cx, ImageSize.cy, ILC_MASK | ILC_COLORDDB, nButton, 0);
ToolBarImageList.Add(&ToolBarBitmap, colMask);
GetToolBarCtrl().SetImageList(&ToolBarImageList);
ToolBarImageList.Detach();
ToolBarBitmap.Detach();
}
void CToolBar256::SetHotBitmap(UINT nIDResource, CSize ImageSize, UINT nButton, COLORREF colMask)
{
CImageList ToolBarImageList;
CBitmap ToolBarBitmap;
ToolBarBitmap.LoadBitmap(nIDResource);
ToolBarImageList.Create(ImageSize.cx, ImageSize.cy, ILC_MASK | ILC_COLORDDB, nButton, 0);
ToolBarImageList.Add(&ToolBarBitmap, colMask);
GetToolBarCtrl().SetHotImageList(&ToolBarImageList);
ToolBarImageList.Detach();
ToolBarBitmap.Detach();
}
void CToolBar256::SetDisabledBitmap(UINT nIDResource, CSize ImageSize, UINT nButton, COLORREF colMask)
{
CImageList ToolBarImageList; CBitmap ToolBarBitmap; ToolBarBitmap.LoadBitmap(nIDResource);
ToolBarImageList.Create(ImageSize.cx, ImageSize.cy, ILC_MASK | ILC_COLORDDB, nButton, 0);
ToolBarImageList.Add(&ToolBarBitmap, colMask);
GetToolBarCtrl().SetDisabledImageList(&ToolBarImageList);
ToolBarImageList.Detach();
ToolBarBitmap.Detach();
}