//------------------------------------------------------------------------------------- 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) ; }