菜单编程的OWNERDRAW属性问题
我自己从CMenu派生一个CMenuEx类,在该类中从写了DrawItem和OnMeasureItem方法;并通过
void CMenuMy::ChangStyle(CMenu *menu)
{ int index=0;
int itemcount=menu->GetMenuItemCount();
for(int i=0;i<itemcount;i++)
{
menu->GetMenuString(i,m_listinfo[index].m_itemtext,MF_BYPOSITION);
int id=menu->GetMenuItemID(i);
m_listinfo[index].m_itemid=id;
menu->ModifyMenu(i,MF_BYPOSITION | MF_OWNERDRAW | MF_STRING,m_listinfo[index].m_itemid,
m_listinfo[index].m_itemtext);
menu->MeasureItem(lpMeasureItemStruct);
index++;
CMenu* psubmenu=menu->GetSubMenu(i);
if(psubmenu)
{
ChangStyle(psubmenu);
}
}
}
将菜单设置为OWNERDRAW属性了,在CMainFrame中也使用了drawitem和measureitem了,也从cmenuex构造了一个mymenu对象,并用该对象调用函数了,但为什么它仍然使用原来默认的菜单,并不调用我写的类中的属性呢?