中南大学数学院面向对象报告 菜单操作.doc_第1页
中南大学数学院面向对象报告 菜单操作.doc_第2页
中南大学数学院面向对象报告 菜单操作.doc_第3页
中南大学数学院面向对象报告 菜单操作.doc_第4页
中南大学数学院面向对象报告 菜单操作.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学面向对象程序设计上机报告题目: 菜单操作学生姓名:学号:专业班级:指导老师:数学科学与计算技术学院2011年11月一、 上机目的、内容:学习菜单的工作原理,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。明白标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,快捷弹出菜单的实现方式。最后利用VS2008通过静态和动态两种方式对菜单进行简单操作(包括产生新的菜单项、新产生的菜单命令安排处理函数等等)。二、 上机程序设计具体内容:菜单操作静态菜单的创建与操作1.1利用查找ID号或索引对子菜单进行标志,程序运行结果:1.2利用查找ID号或索引对子菜单进行黑体化,程序运行结果:1.3利用查找ID号或索引在子菜单中创建图形标志,程序运行结果:但我们遇到如何设置图标大小的问题,最后通过调用GetSystemMetrics函数查看所需图形标志的大小,结果如下图:然后重新设置,得到最后程序,程序运行结果:1.4利用添加工程组件,实现右键弹出菜单功能,但是VS2008里面没有该功能,所以我们选择手动添加鼠标右键弹出菜单的工程组件,程序运行结果:动态菜单的创建、删除与插入操作1.5利用动态手动添加在菜单栏上添加一个Lim菜单项,程序运行结果:1.6利用动态手动添加在菜单栏Lim上添加子菜单项,程序运行结果:并实现子菜单项a弹出对话框的功能,程序运行结果:1.7最后我们利用VIEW类中onchar函数对消息捕获,再由ID号调用菜单项,并运用二维数组CString对我们输入的信息进行保存和调用。实现在应用程序窗口的菜单栏处创建动态电话本菜单项的功能(其中主要是实现在窗口处添加姓名和电话号码,最后保存于电话本,然后点击电话本,可以显示所需内容),程序运行结果:三、 上机程序设计心得:我们通过学习面向对象程序设计,发现在VS2008中添加MFC中消息处理函数和VC6.0是不一样的。我们只能通过类视图,右键需要添加处理函数的类,选择属性,在属性窗口中,单击“消息”按钮,然后在消息列表框中,选择需要添加的消息。而在运用MessageBox时,我们需要用到一种中间类型TEXT对字符进行转换。这些都是我们所遇到的问题,但我们都可以通过查询MSDN进行解决。四、附录:(2)源程序主要代码第一个程序:/ MainFrm.cpp : CMainFrame 类的实现#include stdafx.h#include Menu.h#include MainFrm.h#ifdef _DEBUG#define new DEBUG_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:OnTest)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()static UINT indicators =ID_SEPARATOR, / 状态行指示器ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;/ CMainFrame 构造/析构CMainFrame:CMainFrame()/ TODO: 在此添加成员初始化代码 /m_bAutoMenuEnable=FALSE;CMainFrame:CMainFrame()int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) |!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(未能创建工具栏n);return -1; / 未能创建if (!m_wndStatusBar.Create(this) |!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)TRACE0(未能创建状态栏n);return -1; / 未能创建/ TODO: 如果不需要可停靠工具栏,则删除这三行m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar); /GetMenu()-GetSubMenu(0)-CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED); /两种方法进行子菜单项标志/GetMenu()-GetSubMenu(0)-CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND | MF_CHECKED); /GetMenu()-GetSubMenu(0)-SetDefaultItem(1,TRUE); /两种方法进行子菜单项粗体化/GetMenu()-GetSubMenu(0)-SetDefaultItem(ID_FILE_OPEN);/GetMenu()-GetSubMenu(0)-SetDefaultItem(5,TRUE); /*CString str; /CString 对象str.Format(TEXT(x=%d,y=%d),GetSystemMetrics(SM_CXMENUCHECK),GetSystemMetrics(SM_CYMENUCHECK);/Format函数格式化MessageBox(str);m_bitmap.LoadBitmap(IDB_BITMAP1); GetMenu()-GetSubMenu(0)-SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);*/ /GetMenu()-GetSubMenu(0)-EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);SetMenu(NULL); /去掉菜单栏CMenu menu;menu.LoadMenu(IDR_MAINFRAME);SetMenu(&menu);menu.Detach(); /重构菜单栏return 0;BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(cs) )return FALSE;/ TODO: 在此处通过修改/ CREATESTRUCT cs 来修改窗口类或样式return TRUE;/ CMainFrame 诊断#ifdef _DEBUGvoid CMainFrame:AssertValid() constCFrameWnd:AssertValid();void CMainFrame:Dump(CDumpContext& dc) constCFrameWnd:Dump(dc);#endif /_DEBUG/ CMainFrame 消息处理程序/void CMainFrame:OnTest()/ TODO: 在此添加命令处理程序代码/void CMainFrame:OnUpdateEditCut(CCmdUI *pCmdUI)/ TODO: 在此添加命令更新用户界面处理程序代码if(2=pCmdUI-m_nIndex) /if(ID_EDIT_CUT=pCmdUI-m_nID) pCmdUI-Enable();/两种方法,索引时只能实现菜单栏,不能实现工具栏void CMainFrame:OnUpdateFileNew(CCmdUI *pCmdUI)/ TODO: 在此添加命令更新用户界面处理程序代码/ if(ID_FILE_NEW=pCmdUI-m_nID)/ pCmdUI-Enable(false);if(0=pCmdUI-m_nIndex)pCmdUI-Enable(FALSE); / 两种方法,一个是ID,另一个是索引void CMainFrame:OnShow()/ TODO: 在此添加命令处理程序代码MessageBox(TEXT(MainFrame Show);/ Menu.cpp : 定义应用程序的类行为。#include stdafx.h#include Menu.h#include MainFrm.h#include MenuDoc.h#include MenuView.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMenuAppBEGIN_MESSAGE_MAP(CMenuApp, CWinApp)ON_COMMAND(ID_APP_ABOUT, &CMenuApp:OnAppAbout)/ 基于文件的标准文档命令ON_COMMAND(ID_FILE_NEW, &CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, &CWinApp:OnFileOpen)/ 标准打印设置命令ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/ CMenuApp 构造CMenuApp:CMenuApp()/ TODO: 在此处添加构造代码,/ 将所有重要的初始化放置在InitInstance 中/ 唯一的一个CMenuApp 对象CMenuApp theApp;/ CMenuApp 初始化BOOL CMenuApp:InitInstance()/ 如果一个运行在Windows XP 上的应用程序清单指定要/ 使用ComCtl32.dll 版本6 或更高版本来启用可视化方式,/则需要InitCommonControlsEx()。否则,将无法创建窗口。INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);/ 将它设置为包括所有要在应用程序中使用的/ 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinApp:InitInstance();/ 初始化OLE 库if (!AfxOleInit()AfxMessageBox(IDP_OLE_INIT_FAILED);return FALSE;AfxEnableControlContainer();/ 标准初始化/ 如果未使用这些功能并希望减小/ 最终可执行文件的大小,则应移除下列/ 不需要的特定初始化例程/ 更改用于存储设置的注册表项/ TODO: 应适当修改该字符串,/ 例如修改为公司或组织名SetRegistryKey(_T(应用程序向导生成的本地应用程序);LoadStdProfileSettings(4); / 加载标准INI 文件选项(包括MRU)/ 注册应用程序的文档模板。文档模板/ 将用作文档、框架窗口和视图之间的连接CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CMenuDoc),RUNTIME_CLASS(CMainFrame), / 主SDI 框架窗口RUNTIME_CLASS(CMenuView);if (!pDocTemplate)return FALSE;AddDocTemplate(pDocTemplate);/ 分析标准外壳命令、DDE、打开文件操作的命令行CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ 调度在命令行中指定的命令。如果/ 用/RegServer、/Register、/Unregserver 或/Unregister 启动应用程序,则返回FALSE。if (!ProcessShellCommand(cmdInfo)return FALSE;/ 唯一的一个窗口已初始化,因此显示它并对其进行更新m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();/ 仅当具有后缀时才调用DragAcceptFiles/ 在SDI 应用程序中,这应在ProcessShellCommand 之后发生return TRUE;/ 用于应用程序“关于”菜单项的CAboutDlg 对话框class CAboutDlg : public CDialogpublic:CAboutDlg();/ 对话框数据enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 实现protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()/ 用于运行对话框的应用程序命令void CMenuApp:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/ CMenuApp 消息处理程序/ MenuDoc.cpp : CMenuDoc 类的实现#include stdafx.h#include Menu.h#include MenuDoc.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMenuDocIMPLEMENT_DYNCREATE(CMenuDoc, CDocument)BEGIN_MESSAGE_MAP(CMenuDoc, CDocument)END_MESSAGE_MAP()/ CMenuDoc 构造/析构CMenuDoc:CMenuDoc()/ TODO: 在此添加一次性构造代码CMenuDoc:CMenuDoc()BOOL CMenuDoc:OnNewDocument()if (!CDocument:OnNewDocument()return FALSE;/ TODO: 在此添加重新初始化代码/ (SDI 文档将重用该文档)return TRUE;/ CMenuDoc 序列化void CMenuDoc:Serialize(CArchive& ar)if (ar.IsStoring()/ TODO: 在此添加存储代码else/ TODO: 在此添加加载代码/ CMenuDoc 诊断#ifdef _DEBUGvoid CMenuDoc:AssertValid() constCDocument:AssertValid();void CMenuDoc:Dump(CDumpContext& dc) constCDocument:Dump(dc);#endif /_DEBUG/ CMenuDoc 命令/ MenuView.cpp : CMenuView 类的实现#include stdafx.h#include Menu.h#include MenuDoc.h#include MenuView.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMenuViewIMPLEMENT_DYNCREATE(CMenuView, CView)BEGIN_MESSAGE_MAP(CMenuView, CView)/ 标准打印命令ON_COMMAND(ID_FILE_PRINT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView:OnFilePrintPreview)ON_COMMAND(IDM_TEST, &CMenuView:OnTest)ON_WM_LBUTTONDOWN()ON_COMMAND(IDM_SHOW, &CMenuView:OnShow)END_MESSAGE_MAP()/ CMenuView 构造/析构CMenuView:CMenuView()/ TODO: 在此处添加构造代码CMenuView:CMenuView()BOOL CMenuView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此处通过修改/ CREATESTRUCT cs 来修改窗口类或样式return CView:PreCreateWindow(cs);/ CMenuView 绘制void CMenuView:OnDraw(CDC* /*pDC*/)CMenuDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码/ CMenuView 打印BOOL CMenuView:OnPreparePrinting(CPrintInfo* pInfo)/ 默认准备return DoPreparePrinting(pInfo);void CMenuView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加额外的打印前进行的初始化过程void CMenuView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加打印后进行的清理过程/ CMenuView 诊断#ifdef _DEBUGvoid CMenuView:AssertValid() constCView:AssertValid();void CMenuView:Dump(CDumpContext& dc) constCView:Dump(dc);CMenuDoc* CMenuView:GetDocument() const / 非调试版本是内联的ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMenuDoc);return (CMenuDoc*)m_pDocument;#endif /_DEBUG/ CMenuView 消息处理程序void CMenuView:OnTest()/ TODO: 在此添加命令处理程序代码void CMenuView:OnLButtonDown(UINT nFlags, CPoint point)/ TODO: 在此添加消息处理程序代码和/或调用默认值CMenu menu;menu.LoadMenu(IDR_MENU1);CMenu *pPopup=menu.GetSubMenu(0);ClientToScreen(&point);pPopup-TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,GetParent();/窗口属于父窗口 CView:OnLButtonDown(nFlags, point);void CMenuView:OnShow()/ TODO: 在此添加命令处理程序代码MessageBox(TEXT(View Show!);第二个程序:/ MainFrm.cpp : CMainFrame 类的实现#include stdafx.h#include Menu2.h#include MainFrm.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMainFrameIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)ON_WM_CREATE()ON_COMMAND(IDM_a,Ona)ON_COMMAND(ID_EDIT_CUT, &CMainFrame:OnEditCut)END_MESSAGE_MAP()static UINT indicators =ID_SEPARATOR, / 状态行指示器ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;/ CMainFrame 构造/析构CMainFrame:CMainFrame()/ TODO: 在此添加成员初始化代码CMainFrame:CMainFrame()int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) |!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(未能创建工具栏n);return -1; / 未能创建if (!m_wndStatusBar.Create(this) |!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)TRACE0(未能创建状态栏n);return -1; / 未能创建/ TODO: 如果不需要可停靠工具栏,则删除这三行m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);/*CMenu menu;menu.CreatePopupMenu();/GetMenu()-AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,TEXT(Lim);menu.Detach();/ GetMenu()-InsertMenu(2,MF_BYPOSITION | MF_POPUP,(UINT)menu.m_hMenu,TEXT(Lim);menu.AppendMenu(MF_STRING,IDM_a,TEXT(a);menu.AppendMenu(MF_STRING,112,TEXT(b);menu.AppendMenu(MF_STRING,113,TEXT(c);menu.Detach();/GetMenu()-GetSubMenu(0)-AppendMenu(MF_STRING,114,TEXT(Welcome);/增加子菜单GetMenu()-GetSubMenu(0)-InsertMenu(ID_FILE_OPEN,MF_BYCOMMAND | MF_STRING,115,TEXT(维新);GetMenu()-DeleteMenu(1,MF_BYPOSITION);/删除编辑子菜单GetMenu()-GetSubMenu(0)-DeleteMenu(2,MF_BYPOSITION);*/return 0;BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(cs) )return FALSE;/ TODO: 在此处通过修改/ CREATESTRUCT cs 来修改窗口类或样式return TRUE;/ CMainFrame 诊断#ifdef _DEBUGvoid CMainFrame:AssertValid() constCFrameWnd:AssertValid();void CMainFrame:Dump(CDumpContext& dc) constCFrameWnd:Dump(dc);#endif /_DEBUGvoid CMainFrame:Ona()MessageBox(TEXT(Hello!);/ CMainFrame 消息处理程序void CMainFrame:OnEditCut()/ TODO: 在此添加命令处理程序代码/ Menu2.cpp : 定义应用程序的类行为。#include stdafx.h#include Menu2.h#include MainFrm.h#include Menu2Doc.h#include Menu2View.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMenu2AppBEGIN_MESSAGE_MAP(CMenu2App, CWinApp)ON_COMMAND(ID_APP_ABOUT, &CMenu2App:OnAppAbout)/ 基于文件的标准文档命令ON_COMMAND(ID_FILE_NEW, &CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, &CWinApp:OnFileOpen)/ 标准打印设置命令ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/ CMenu2App 构造CMenu2App:CMenu2App()/ TODO: 在此处添加构造代码,/ 将所有重要的初始化放置在InitInstance 中/ 唯一的一个CMenu2App 对象CMenu2App theApp;/ CMenu2App 初始化BOOL CMenu2App:InitInstance()/ 如果一个运行在Windows XP 上的应用程序清单指定要/ 使用ComCtl32.dll 版本6 或更高版本来启用可视化方式,/则需要InitCommonControlsEx()。否则,将无法创建窗口。INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);/ 将它设置为包括所有要在应用程序中使用的/ 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinApp:InitInstance();/ 初始化OLE 库if (!AfxOleInit()AfxMessageBox(IDP_OLE_INIT_FAILED);return FALSE;AfxEnableControlContainer();/ 标准初始化/ 如果未使用这些功能并希望减小/ 最终可执行文件的大小,则应移除下列/ 不需要的特定初始化例程/ 更改用于存储设置的注册表项/ TODO: 应适当修改该字符串,/ 例如修改为公司或组织名SetRegistryKey(_T(应用程序向导生成的本地应用程序);LoadStdProfileSettings(4); / 加载标准INI 文件选项(包括MRU)/ 注册应用程序的文档模板。文档模板/ 将用作文档、框架窗口和视图之间的连接CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CMenu2Doc),RUNTIME_CLASS(CMainFrame), / 主SDI 框架窗口RUNTIME_CLASS(CMenu2View);if (!pDocTemplate)return FALSE;AddDocTemplate(pDocTemplate);/ 分析标准外壳命令、DDE、打开文件操作的命令行CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ 调度在命令行中指定的命令。如果/ 用/RegServer、/Register、/Unregserver 或/Unregister 启动应用程序,则返回FALSE。if (!ProcessShellCommand(cmdInfo)return FALSE;/ 唯一的一个窗口已初始化,因此显示它并对其进行更新m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();/ 仅当具有后缀时才调用DragAcceptFiles/ 在SDI 应用程序中,这应在ProcessShellCommand 之后发生return TRUE;/ 用于应用程序“关于”菜单项的CAboutDlg 对话框class CAboutDlg : public CDialogpublic:CAboutDlg();/ 对话框数据enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 实现protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()/ 用于运行对话框的应用程序命令void CMenu2App:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/ CMenu2App 消息处理程序/ Menu2Doc.cpp : CMenu2Doc 类的实现#include stdafx.h#include Menu2.h#include Menu2Doc.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMenu2DocIMPLEMENT_DYNCREATE(CMenu2Doc, CDocument)BEGIN_MESSAGE_MAP(CMenu2Doc, CDocument)END_MESSAGE_MAP()/ CMenu2Doc 构造/析构CMenu2Doc:CMenu2Doc()/ TODO: 在此添加一次性构造代码CMenu2Doc:CMenu2Doc()BOOL CMenu2Doc:OnNewDocument()if (!CDocument:OnNewDocument()return FALSE;/ TODO: 在此添加重新初始化代码/ (SDI 文档将重用该文档)return TRUE;/ CMenu2Doc 序列化void CMenu2Doc:Serialize(CArchive& ar)if (ar.IsStoring()/ TODO: 在此添加存储代码else/ TODO: 在此添加加载代码/ CMenu2Doc 诊断#ifdef _DEBUGvoid CMenu2Doc:AssertValid() constCDocument:AssertValid();void CMenu2Doc:Dump(CDumpContext& dc) constCDocument:Dump(dc);#endif /_DEBUG/ CMenu2Doc 命令/ Menu2View.cpp : CMenu2View 类的实现#include stdafx.h#include Menu2.h#include Menu2Doc.h#include Menu2View.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CMenu2ViewIMPLEMENT_DYNCREATE(CMenu2View, CView)BEGIN_MESSAGE_MAP(CMenu2View, CView)/ 标准打印命令ON_COMMAND(ID_FILE_PRINT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView:OnFilePrintPreview)ON_WM_CHAR()ON_COMMAND(IDM_PHONE1, &CMenu2View:OnPhone1)ON_COMMAND(IDM_PHONE2, &CMenu2View:OnPhone2)ON_COMMAND(IDM_PHONE3, &CMenu2View:OnPhone3)END_MESSAGE_MAP()/ CMenu2View 构造/析构CMenu2View:CMenu2View(): m_nlndex(0), m_strLine(_T()/ TODO: 在此处添加构造代码 m_nlndex=-1;CMenu2View:CMenu2View()BOOL CMenu2View:PreCreateWindow(CREATESTRUCT& cs)/ T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论