- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验17mfc菜单设计
实验17 MFC菜单设计
17.1实验目的
1.基本学会弹出菜单的制作方法
2.进一步理解事件驱动程序设计
17.2实验内容与步骤
1.上机实验题一
在视图窗口上制作一个弹出式菜单,并包含3个子菜单,如图17-1所示。
⑴分析
首先产生一个单文档视图应用程序框架,在视图上按下
按下鼠标右键时,弹出该菜单。为每一个菜单建立一个消息
处理程序。
⑵步骤
①用MFC产生一个单文档视图应用程序框架
设项目文件名为Menu。 图17-1 弹出菜单
②产生一个弹出式菜单
在视图窗口上产生一个弹出式菜单的方法是在视图类中增加一个重载的OnInitialUpdate成员函数。进入ClassVizard,类名选CMenuView,Object IDs选CMenuView,Messages选OnInitialUpdate,双击该消息,则在Member functions中显示成员函数名OnInitialUpdate,双击该函数名,则显示该成员函数:
void CMenuesView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
}
在视图类的定义中增加一个指向菜单对象的指针变量m_menu。新增加部分均作黑体字表示。
class CMenuesView : public CView
{
protected: // create from serialization only
CMenuesView();
DECLARE_DYNCREATE(CMenuesView)
// Attributes
protected:
CMenu *m_menu; //增加保护的数据成员
......
}
调用菜单类的成员函数CreatePopupMenu,在OnInitialUpdate函数中产生一个弹出式菜单:
void CMenuesView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_menu = new CMenu;
m_menu-CreatePopupMenu();
}
③在产生的弹出式菜单中增加三个菜单项,菜单项名分别为“弹出菜单1”,“弹出菜单2”和“弹出菜单3”;指定它们的菜单ID分别为ID_POPUP1,ID_POPUP2,ID_POPUP3。由于在菜单ID与菜单名之间建立映射,为此要将这三个菜单ID加入资源符号表中。在View菜单中选择“Resource Symbols”子菜单,则弹出图17-2所示的对话框。
图17-2 资源符号表
单出对话框中的“New…”按钮,则弹出如图17-3所示的对话框。
图17-3 增加新的符号资源对话框
在Name中输入ID_POPUP1,Value取缺省值101,单击按“Ok” 按钮,系统产生一个符号名ID_POPUP1,用同样的方法产生资源符号名ID_POPUP2和ID_POPUP3。单击图17-2上的“Close”按钮,关闭该对话框。
使用菜单对象的成员函数AppendMenu将新的菜单项加入到弹出菜单中,这个成员函数的格式为:
AppendMenu(UINT nFlags,UINT nIDNewItem,const Cbitmap *pBmp);
其中,nFlags为MF_CHECKED, MF_ENABLE, MF_POPUP, MF_SEPARATOR, MF_STRING等,MF_STRING为设置菜单名;nIDNewItem为菜单的ID,pBmp为指向菜单名的指针或是指向菜单位图的指针。在成员函数OnInitialUpdate中,使用该函数产生三个菜单项。
void CMenuView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_menu = new CMenu;
m_menu-CreatePopupMenu();
CString item1(弹出菜单1);
m_menu-AppendMenu(MF_STRING,ID_POPUP1,item1);
CString item2(弹出菜单2
文档评论(0)