我将菜单设为自绘,并自绘它的位图,下面是一段代码,但有点问题 MENUITEMINFO info;
HBITMAP hbmpChecked,hbmpUnchecked;

info.cbSize =sizeof(info);
info.fMask = MIIM_CHECKMARKS ;

GetMenuItemInfo (pItemData->hMenu ,
                                     pItemData->nID ,FALSE,&info);

hbmpChecked = info.hbmpChecked ;
if (hbmpChecked)
{
CPoint pt;
pt.x = RectL.left +2;
pt.y = RectL.top +2;
CSize size(16,16);
pDC->DrawState (pt,size,hbmpChecked ,
                                             DSS_NORMAL,(HBRUSH)NULL );
}
程序可以得到hbmpChecked,但DrawState总是反回0,绘制不成功,不知道为什么.

解决方案 »

  1.   

    自绘菜单仅需重载OnDraw(),请问此函数在何处处理?OnDraw()的DRAWITEMSTRUCT有相关的结构。
      

  2.   

    DRAWITEMSTRUCT中并没有关于菜单位图的内容,
    typedef struct tagDRAWITEMSTRUCT {
      UINT      CtlType; 
      UINT      CtlID; 
      UINT      itemID; 
      UINT      itemAction; 
      UINT      itemState; 
      HWND      hwndItem; 
      HDC       hDC; 
      RECT      rcItem; 
      ULONG_PTR itemData; 
    } DRAWITEMSTRUCT;