Example #1
0
//-------------------------------------------------------------------------------------
void CMainFrame::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDIS)
{
    if (lpDIS && (lpDIS->CtlType == ODT_MENU))
    {
        FCObjImage   img ;
        img.LoadResource (lpDIS->itemID, L"PNG", IMG_PNG) ;
        if (img.IsValidImage())
        {
            if (lpDIS->itemState & ODS_DISABLED)
            {
                img.ApplyEffect (FCEffectGrayscale()) ;
            }

            std::auto_ptr<Gdiplus::Bitmap>   gb (img.CreateBitmap()) ;

            CRect   rc = FCObjGraph::CalcFitWindowSize (CSize(img.Width(),img.Height()), lpDIS->rcItem) ;
            Gdiplus::Graphics(lpDIS->hDC).DrawImage (gb.get(), rc.left, rc.top, rc.Width(), rc.Height()) ;
        }
        return ;
    }
    CMDIFrameWnd::OnDrawItem (nIDCtl, lpDIS) ;
}