我将菜单设为自绘,并自绘它的位图,下面是一段代码,但有点问题 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,绘制不成功,不知道为什么.
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,绘制不成功,不知道为什么.
typedef struct tagDRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
ULONG_PTR itemData;
} DRAWITEMSTRUCT;