现在的位置: 首页 > 综合 > 正文

Windwos SDK开发 –实现菜单的美观2

2013年04月07日 ⁄ 综合 ⁄ 共 945字 ⁄ 字号 评论关闭

  前面,我们已经讲了怎样在菜单里添加图片并显示相应的文字.这里,我们接着讲一种简单的往菜单里加载图片的方法

首先,加载相关的图片
HBITMAP hApple,hOrange;
hApple=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP_APPLE));
hOrange=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP_ORANGE));

创建新菜单
HMENU MenuBar,PopupMenu;
MenuBar=CreateMenu();
PopupMenu=CreatePopupMenu();

这时候,我们就需要用到AppendMenu这个函数了,它可以往下拉菜单,子菜单,快捷菜单里添加我们需要的内容
BOOL AppendMenu(
    HMENU hMenu,  //需要往哪个菜单添加的句柄
    UINT uFlags, //所添加菜单项的标志,MF_BITMAP,MF_CHECKED,MF_STRING等
    UINT_PTR uIDNewItem,//如果所添加的是MF_STRING,这个就需要它的ID,如果是MF_POPUP,就是弹出菜单的句柄
    LPCTSTR lpNewItem //如果uFlags是MF_BITMAP,则这里需要该图片的句柄
);
注意,我们在设置uFlags的时候,以下这些组合不能同时在一起
MF_BITMAP, MF_STRING, and MF_OWNERDRAW
MF_CHECKED and MF_UNCHECKED
MF_DISABLED, MF_ENABLED, and MF_GRAYED
MF_MENUBARBREAK and MF_MENUBREAK

AppendMenu(MenuBar,MF_STRING | MF_POPUP,(UINT_PTR)PopupMenu,L"My Menu");
AppendMenu(PopupMenu,MF_BITMAP ,IDM_APPLE,(LPCTSTR)hApple);
AppendMenu(PopupMenu,MF_BITMAP ,IDM_ORANGE,(LPCTSTR)hOrange);

最后,设置我们的菜单到菜单栏
SetMenu(hWnd,MenuBar); 

抱歉!评论已关闭.