- 46
- 0
- 约4.18千字
- 约 5页
- 2017-05-12 发布于河南
- 举报
MFC菜单设计
实验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
您可能关注的文档
- CE6.0安装方法.doc
- CHAR02 程序的灵魂.doc
- chart 控件.doc
- CAM3.3.doc
- Code Review 理论与实战.doc
- CM设置图文教程.doc
- CORE DRAW.doc
- cool录音软件使用.doc
- Coreldraw 016.doc
- corelDRAW12_jy0101.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 交流转辙机道岔动作电流故障曲线分析信号集中监测课件.pptx VIP
- 2025届东北三省三校高三下学期第一次联合模拟考试政治试题(原卷版+解析版).docx VIP
- 养老服务质量检测90项.pdf VIP
- 光谱分析图谱与标志.docx
- 2025新课标中考英语词汇.pdf VIP
- T_CNPHARS 0001-2025 群体药动学药效学分析标准操作规范.pdf VIP
- (2026年)血浆置换及血浆分离吸附护理要点PPT课件.pptx VIP
- 农村狗狗交配的全过程,让你看了有点不可置信.pdf VIP
- 医院培训课件:《死亡医学证明(推断)书》规范填写及死因链基础知识.pptx VIP
- 健康体检表样表最新文档.docx VIP
原创力文档

文档评论(0)