创建了普通的对话框,然后加入了自定的菜单栏.
是"COLOR"------RED
         |
         ------BULE
就这么简单的菜单栏。
然后想用SetMenuItemBitmaps()给第2个(BUlE)加入图片。
就在CXXDlg ----OnInitDialog()----加入
CMenu menu;
menu.LoadMenuA(IDR_MENU1);
this->SetMenu(&menu);
GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);
//GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_COLOR_BULE,false);
GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION | MF_DISABLED);//下面开始是加入图片,上面菜单载入,还有些其它的。 CBitmap icon1,icon2 ;
icon1.LoadBitmap(IDI_ICON1);
icon2.LoadBitmap(IDI_ICON2);
GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(1,MF_BYCOMMAND,&icon1,&icon2); return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}结果没有效果来的。。求助
  

解决方案 »

  1.   

    CBitmap icon1,icon2 ;
    icon1.LoadBitmap(IDI_ICON1);
    icon2.LoadBitmap(IDI_ICON2);
    GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(1,MF_BYCOMMAND,&icon1,&icon2);
    ==========
    在return之前加上这两句:
    icon1.Detach();
    icon2.Detach();
    因为icon1和icon2都是局部变量,所以函数一结束,它们就会被撤消掉,同时它们关联的位图对像也会失效,所以用上面两句将这两个变量和位图对象分开。 
      

  2.   

    你函数参数写错了 应该把MF_BYCOMMAND写出MF_BYPOSITION
    还要static CBitmap icon1,icon2;