我引入了一个类,对MDI程序现有的菜单进行自绘。
如果要自绘主框架菜单,则对主框架子菜单设置自绘属性,然后重载DrawItem和MeasureItem函数。如下过程
 COwerDrawMenu m_Menu;m_Menu.SetOwerDraw(设置自绘属性);
然后重载框架的DrawItem和MeasureItem函数()
CMainFrame::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
  m_Menu.DrawItem(lpDrawItemStruct);
  CMDIFrameWnd::OnDrawItem(nIDCtl, lpDrawItemStruct);
}void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) 
{
m_Menu.MeasureItem(lpMeasureItemStruct);
CMDIFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
}
如果打开视图,此时系统菜单变成视图的菜单,也必须设置变量对其设置自绘属性。
这样多个视图的话,要写多个重复的代码。
有没有办法,只设置一次,不管当前菜单是哪个视图的都能进行自绘显示????????