툴바에서 256 이상의 컬러 사용

기존의 리소스는 그대로 두고 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(); 
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다