欢迎来到天天文库
浏览记录
ID:35204259
大小:621.50 KB
页数:23页
时间:2019-03-21
《中南大学数学院面向对象报告菜单操作》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、中南大学《面向对象程序设计》上机报告题目:菜单操作学生姓名:学号:专业班级:指导老师:数学科学与计算技术学院2011年11月一、上机目的、内容:学习菜单的工作原理,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。明白标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,快捷弹出菜单的实现方式。最后利用VS2008通过静态和动态两种方式对菜单进行简单操作(包括产生新的菜单项、新产生的菜单命令安排处理函数等等)。一、上机程序设计具体内容:菜单操作静态菜单的创建与操作1.1利用查找ID号
2、或索引对子菜单进行标志,程序运行结果:1.2利用查找ID号或索引对子菜单进行黑体化,程序运行结果:1.3利用查找ID号或索引在子菜单中创建图形标志,程序运行结果:但我们遇到如何设置图标大小的问题,最后通过调用GetSystemMetrics函数查看所需图形标志的大小,结果如下图:然后重新设置,得到最后程序,程序运行结果:1.4利用添加工程组件,实现右键弹出菜单功能,但是VS2008里面没有该功能,所以我们选择手动添加鼠标右键弹出菜单的工程组件,程序运行结果:动态菜单的创建、删除与插入操作1.5利用动态
3、手动添加在菜单栏上添加一个Lim菜单项,程序运行结果:1.6利用动态手动添加在菜单栏Lim上添加子菜单项,程序运行结果:并实现子菜单项a弹出对话框的功能,程序运行结果:1.7最后我们利用VIEW类中onchar函数对消息捕获,再由ID号调用菜单项,并运用二维数组CString对我们输入的信息进行保存和调用。实现在应用程序窗口的菜单栏处创建动态电话本菜单项的功能(其中主要是实现在窗口处添加姓名和电话号码,最后保存于电话本,然后点击电话本,可以显示所需内容),程序运行结果:一、上机程序设计心得:我们通过学
4、习面向对象程序设计,发现在VS2008中添加MFC中消息处理函数和VC6.0是不一样的。我们只能通过类视图,右键需要添加处理函数的类,选择属性,在属性窗口中,单击“消息”按钮,然后在消息列表框中,选择需要添加的消息。而在运用MessageBox时,我们需要用到一种中间类型TEXT对字符进行转换。这些都是我们所遇到的问题,但我们都可以通过查询MSDN进行解决。四、附录:(2)源程序主要代码第一个程序://MainFrm.cpp:CMainFrame类的实现#include"stdafx.h"#inclu
5、de"Menu.h"#include"MainFrm.h"#ifdef_DEBUG#definenewDEBUG_NEW#endif//CMainFrameIMPLEMENT_DYNCREATE(CMainFrame,CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)ON_WM_CREATE()//ON_COMMAND(IDM_TEST,&CMainFrame::OnTest)//ON_COMMAND(IDM_TEST,&CMainFrame::OnTe
6、st)ON_UPDATE_COMMAND_UI(ID_EDIT_CUT,&CMainFrame::OnUpdateEditCut)ON_UPDATE_COMMAND_UI(ID_FILE_NEW,&CMainFrame::OnUpdateFileNew)ON_COMMAND(IDM_SHOW,&CMainFrame::OnShow)END_MESSAGE_MAP()staticUINTindicators[]={ID_SEPARATOR,//状态行指示器ID_INDICATOR_CAPS,ID_IND
7、ICATOR_NUM,ID_INDICATOR_SCRL,};//CMainFrame构造/析构CMainFrame::CMainFrame(){//TODO:在此添加成员初始化代码//m_bAutoMenuEnable=FALSE;}CMainFrame::~CMainFrame(){}intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;if
8、(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD
9、WS_VISIBLE
10、CBRS_TOP
11、CBRS_GRIPPER
12、CBRS_TOOLTIPS
13、CBRS_FLYBY
14、CBRS_SIZE_DYNAMIC)
15、
16、!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)){TRACE0("未能创建工具栏");return-1;//未能创建}if(!m_wndStatusBar.Cre
此文档下载收益归作者所有