位圖菜單:
在網(wǎng)上看到的文章如下:
看下文章之前你要注意兩個(gè)問題,一是你加載的位圖是*.bmp的圖片不是*.ico;二是圖片的大小要定為16*16,不然你會(huì)看不到位圖(我就是犯了這個(gè)弄了一天).
MFC的CMenu類有一個(gè)成員函數(shù)SetMenuItemBitmaps,能用于往菜單中增加圖標(biāo)。具體方法如下:
在應(yīng)用程式的資源文件中添加想要增加的位圖,并將其ID命名為IDB_OPEN1和IDB_OPEN2;
---在應(yīng)用程式的視圖類中添加CBitmap類的對(duì)象,不妨取名為bm_open1和bm_open2,
在視圖類的構(gòu)造函數(shù)中添加以下代碼:
bm_open1.LoadBitmap(IDB_OPEN1);
bm_open2.LoadBitmap(IDB_OPEN2);
(函數(shù)LoadBitmap用于加載位圖到CBitmap類的對(duì)象)在視圖類的成員函數(shù)OnDraw()中添加以下代碼:
CWnd * parent=GetParent();
CMenu * pmenubar=parent->GetMenu();
CMenu * pmenu=pmenubar->GetSubMenu(2);
pmenu->SetMenuItemBitmaps(1,MF_BYPOSITION,&bm_open1,&bm_open2);
前三行得到指向菜單的指針,第四行調(diào)用函數(shù)SetMenuItemBitmaps往菜單中增加圖標(biāo),具體參數(shù)的含義可參見有關(guān)介紹MFC及其成員函數(shù)的書即可.
就是犯了這個(gè)錯(cuò)誤,我網(wǎng)上走了很久:
然后我發(fā)現(xiàn)另一篇文章可以實(shí)現(xiàn)同樣的效果,不記得網(wǎng)頁地址了,自己寫出來!
在應(yīng)用程序的框架類CMainFrame添加CBitmap類的對(duì)象,不妨取名為bm_open1和bm_open2,
同樣在構(gòu)造函數(shù)中添加如下代碼:
bm_open1.LoadBitmap(IDB_OPEN1);
bm_open2.LoadBitmap(IDB_OPEN2);
然后在CMainFrame::OnCreate()中添加如下代碼:(注意,這里和上面不同了,不用獲得父類的指針了)
CMenu * pmenubar=GetMenu();
CMenu * pmenu=pmenubar->GetSubMenu(2);
pmenu->SetMenuItemBitmaps(1,MF_BYPOSITION,&bm_open1,&bm_open2);

最后實(shí)現(xiàn)的效果一樣,主要困擾我的問題是圖片大小沒調(diào)整好顯示不出來.特作此筆記!