正文

WinCE6.0下CMenu创建菜单及其子菜单的实现(发表时间: 2010-7-29 21:36:00)

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ddtme/51546.html 复制链接

分享到:

标签:CMenu 菜单 子菜单 Wince6.0 

 (一)、实现Popup菜单。

1、定义宏定义,也就是菜单项

#define IDM_MENU0 WM_USER+200
#define IDM_MENU1 WM_USER+201
#define IDM_MENU2 WM_USER+202
#define IDM_MENU3 WM_USER+203
#define IDM_ITEM0 WM_USER+210
#define IDM_ITEM1 WM_USER+211
#define IDM_ITEM2 WM_USER+212
#define IDM_ITEM3 WM_USER+213
#define IDM_ITEM4 WM_USER+214
#define IDM_ITEM5 WM_USER+215
#define IDM_ITEM6 WM_USER+216
#define IDM_ITEM7 WM_USER+217
#define IDM_ITEM8 WM_USER+218
#define IDM_ITEM9 WM_USER+219
#define IDM_ITEM10 WM_USER+220
#define IDM_ITEM11 WM_USER+221
#define IDM_ITEM12 WM_USER+222
#define IDM_ITEM13 WM_USER+223
#define IDM_ITEM14 WM_USER+224
#define IDM_ITEM15 WM_USER+225
#define IDM_ITEM16 WM_USER+226

2、创建CMenu对象

在头文件中定义,CMenu *m_pMenu;

在OnInitDialog中添加实现


 m_pMenu = new CMenu();
 m_pMenu->LoadMenu(IDR_WinGuoSearch);

#if 0

 m_pMenu2 = new CMenu();
 m_pMenu2->LoadMenu(IDR_WinGuoSearch);
 m_pMenu->AppendMenu(MF_BYPOSITION|MF_POPUP|MF_STRING,(UINT)m_pMenu3->GetSubMenu(0)->m_hMenu,L"测试子菜单");

 m_pMenu->AppendMenu(MF_STRING,IDM_ITEM0,L"升级");
 m_pMenu->AppendMenu(MF_SEPARATOR,IDM_ITEM3,L"");

 m_pMenu3 = new CMenu();
 m_pMenu3->CreatePopupMenu();

 //第二个参数是菜单的句柄HMENU
 m_pMenu3->AppendMenu(MF_STRING,IDM_ITEM6,L"每周更新");
 m_pMenu3->AppendMenu(MF_STRING,IDM_ITEM7,L"没两周更新");
 m_pMenu3->AppendMenu(MF_STRING,IDM_ITEM8,L"每月更新");
 m_pMenu3->AppendMenu(MF_STRING,IDM_ITEM9,L"暂不更新");

 m_pMenu->AppendMenu(MF_BYPOSITION|MF_POPUP|MF_STRING,(UINT)m_pMenu3->m_hMenu,L"更新设置");

 m_pMenu->AppendMenu(MF_STRING,IDM_ITEM2,L"提醒设置");
 m_pMenu->AppendMenu(MF_SEPARATOR,IDM_ITEM3,L"");
 m_pMenu->AppendMenu(MF_STRING,IDM_ITEM4,L"帮助");
 m_pMenu->AppendMenu(MF_STRING,IDM_ITEM5,L"关于");

#endif

3、添加消息映射函数,实现菜单项的事件处理。


 ON_COMMAND(IDM_ITEM0, &CWinGuoSearchDlg::OnUpdateWinGuo)

 
4、显示。

    //显示菜单
    m_pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_BOTTOMALIGN,0,230+25,this,NULL);
效果图如下:
图为点击选项按钮(这个是通过自己绘图,不是系统自带的菜单栏)的事件,在事件里面触发的。是为模拟系统自带的菜单项而做的。效果还不错哦,和系统的一摸一样。
 
(二)利用资源菜单创建Popup菜单的方法。
说明:资源菜单中有菜单栏,菜单栏是主菜单项,每个菜单项下面的菜单都属于Popup菜单,直接获取子菜单就可以当作Popup菜单使用。
 
1、载入资源菜单
 m_pMenu = new CMenu();
 m_pMenu->LoadMenu(IDR_WinGuoSearch);
2、获取子菜单
 
CMenu *pMenu =  m_pMenu->GetSubMenu(0);
 
3、显示菜单
 

    pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_BOTTOMALIGN,0,230+25,this,NULL);
 
4、菜单的事件处理:资源菜单的事件处理可以直接在资源管理器中添加。
这是这类Popup菜单的好处。
也可以直接添加消息映射代码来处理。

阅读(2149) | 评论(3) | 复制链接


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

评论人: 342342 发布时间: 2011-6-16 18:52:00
www.youkuf.com www.100536.com www.kele51.com www.qilui.com www.ckuku.com 
www.kiss51.com www.to521.com www.5kan.org www.qing51.com www.zhongguoh.com www.hongloubbs.com www.zvzoo.com  www.shouhuni.com shiyijian.org
评论人: 似懂非懂 发布时间: 2011-4-30 14:25:00

www.zhibdf.com www.zhibaidianfeng.com www.0531bdf.com www.jqbdf.com 
www.100536.com www.zvzoo.com www.5kan.org www.kiss51.com www.ckuku.com www.hongloubbs.com 
www.qilui.com www.qing51.com www.zhongguoh.com www.shiyijian.org bbs.5kan.org
评论人: www.12688888.com 发布时间: 2011-1-4 18:21:00
<a href="http://www.12688888.com/" target="_blank">深圳翻译公司</a>
<a href="http://www.yiasia.cn/" target="_blank">广州翻译</a>
www.jxpyl.com
www.tftcn.com
www.seogf.com
www.szqc.info
www.seoxsj.com
www.mbm8.com
www.yyyuyin.com
www.8qn.net

发表评论

您的昵称: 昵称不填为“匿名”

您的Email: (可选)

评论内容:(字数请控制在500字以内)