CMenu改變菜單背景色,添加圖標

 
.h文件中:
CMenu mMenuConfig;
CBrush  mMenuBrush;

if (!mMenuConfig.m_hMenu)
	{
		mMenuConfig.CreatePopupMenu();
		mMenuConfig.AppendMenu(MF_STRING,ID_MENU_MORE_CONFIG, _T("設置"));
		mMenuConfig.AppendMenu(MF_STRING,ID_MENU_MORE_UPGRADE, _T("更新"));
		mMenuConfig.AppendMenu(MF_STRING,ID_MENU_MORE_ABOUT, _T("關於"));

		mMenuBrush.CreateSolidBrush(RGB(240,240,0));//RGB(255,128,128));
		MENUINFO mi;
		mi.cbSize=sizeof(MENUINFO);
		mi.fMask=MIM_BACKGROUND;
		mi.hbrBack=(HBRUSH)mMenuBrush;
		SetMenuInfo((HMENU)(mMenuConfig.m_hMenu),&mi);

 		CBitmap bmp;
    bmp.LoadBitmap(IDB_BITMAP_CONFIG);//IDB_BITMAP_CONFIG爲導入工程中的bmp圖片的id;
		mMenuConfig.SetMenuItemBitmaps(ID_MENU_MORE_CONFIG, MF_BYCOMMAND, bmp, bmp);//此處常態和高亮顯示爲一樣;
		bmp.Detach();//必須Detach,否則圖標不顯示		
    DeleteObject(mMenuBrush);
   }


(WTL8.0,MFC中類似)
發佈了47 篇原創文章 · 獲贊 20 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章