Dragon  
Dragon
日历
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
统计
  • 随笔 - 58
  • 文章 - 0
  • 评论 - 55
  • 引用 - 0

导航

常用链接

留言簿(3)

随笔分类(58)

随笔档案(58)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

位图菜单:
在网上看到的文章如下:
     看下文章之前你要注意两个问题,一是你加载的位图是*.bmp的图片不是*.ico;二是图片的大小要定为16*16,不然你会看不到位图(我就是犯了这个弄了一天).
     MFC的CMenu类有一个成员函数SetMenuItemBitmaps,能用于往菜单中增加图标。具体方法如下:
在应用程式的资源文件中添加想要增加的位图,并将其ID命名为IDB_OPEN1和IDB_OPEN2;
---在应用程式的视图类中添加CBitmap类的对象,不妨取名为bm_open1和bm_open2,
在视图类的构造函数中添加以下代码:

 

bm_open1.LoadBitmap(IDB_OPEN1);
bm_open2.LoadBitmap(IDB_OPEN2);

 

(函数LoadBitmap用于加载位图到CBitmap类的对象)在视图类的成员函数OnDraw()中添加以下代码:

 

CWnd * parent=GetParent();
CMenu 
* pmenubar=parent->GetMenu();
CMenu 
* pmenu=pmenubar->GetSubMenu(2);
pmenu
->SetMenuItemBitmaps(1,MF_BYPOSITION,&bm_open1,&bm_open2);


  前三行得到指向菜单的指针,第四行调用函数SetMenuItemBitmaps往菜单中增加图标,具体参数的含义可参见有关介绍MFC及其成员函数的书即可.

就是犯了这个错误,我网上走了很久:
然后我发现另一篇文章可以实现同样的效果,不记得网页地址了,自己写出来!

在应用程序的框架类CMainFrame添加CBitmap类的对象,不妨取名为bm_open1和bm_open2,

同样在构造函数中添加如下代码:

 

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);

最后实现的效果一样,主要困扰我的问题是图片大小没调整好显示不出来.特作此笔记!

posted on 2008-11-06 23:11 Dragon 阅读(329) 评论(0)  编辑 收藏 引用 所属分类: VC

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © Dragon Powered by: 博客园 模板提供:沪江博客