计算机科学与技术《Vc 程序设计》实验指导书-07计(6)

来源:网络收集 时间:2025-05-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2.用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_SDI

① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”标签,在应用程序项目类型列表框中选择MFC AppWizard(exe)的项目类型,将工程文件夹定位到“…\\Visual C++程序\\实验\\实验10,并在工程框中输入项目名Ex_SDI。

② 单击“确定”按钮,从出现的对话框中,选择单个文档(Single Document,SDI)应用程序类型。

③ 保留其他的默认选项,单击“完成”按钮出现一个对话框,显示出用户在步骤中作出的选择,单击“确定”按钮,系统开始创建。

3.添加菜单

① 在项目工作区窗口中选择ResourceView页面,双击资源Menu项中的IDR_ MAINFRAME,则菜单编辑器窗口出现在主界面的右边,相应的Ex_SDI项目的菜单资源被显示出来。

② 单击“查看”菜单,则在该菜单的最后一项,Visual C++为用户留出了一个空位置,用来输入新的菜单项。

③ 在菜单的空位置上双击鼠标左键,则出现它的属性对话框,如图10.2所示,在标题框中输入“鼠标位置(&M)\\tCtrl+1”,在ID框输入该菜单项的资源标识:ID_VIEW_MOUSE,在提示框中输入“在状态栏上显示当前鼠标位置\\n鼠标位置”,其中\\n前一部分的文本是显示在状态栏上的,后一部分是联动的工具图标按钮的提示文本。

图10.2 菜单项属性设置

4.添加并设计一个工具图标按钮

① 在项目工作区窗口的ResourceView页面中,双击Toolbar中的IDR_MAINFRAME,打开工具栏资源。

② 单击工具栏最右端的空白按钮,在资源编辑器的按钮设计窗口中绘制一个“箭头”,颜色为黑色,然后将其拖动到“帮助”按钮的前面,并使该按钮的前后均有半个空格,结果如图10.3所示。

③ 双击刚才设计的工具按钮,在弹出的属性对话框中将其ID设为ID_VIEW_MOUSE。

图10.3 设计的工具按钮

5.菜单命令和工具按钮的更新

① 为CMainFrame类添加一个BOOL型的成员变量m_bIsMouse,在CMainFrame类构造函数中将m_bIsMouse的初值设为FALSE。

② 用MFC ClassWizard在CMainFrame类中添加工具按钮ID_VIEW_MOUSE的COMMAND和UPDATE_COMMAND_UI消息映射函数,并添加下列代码:

void CMainFrame::OnViewMouse()

{ }

m_bIsMouse = !m_bIsMouse;

25

void CMainFrame::OnUpdateViewMouse(CCmdUI* pCmdUI) { }

pCmdUI->SetCheck(m_bIsMouse);

③ 编译运行并测试。 6.设置快捷键

① 在项目工作区窗口的ResourceView页面中,双击Accelerator中的IDR_ MAINFRAME,打开快捷键资源。

② 双击加速键列表的最下端的空行,弹出如图10.4所示的Accel Properities对话框,选择菜单项ID_VIEW_MOUSE作为要联动的快捷键的ID号,然后单击“下一键”按钮,并按下Ctrl+1作为此加速键的键值。

图10.4 设置快捷键

③ 编译运行并测试。

7.添加状态栏窗格并显示鼠标当前位置

① 打开MainFrm.cpp文件,将原先的indicators数组修改如下:

static UINT indicators[] = { };

ID_SEPARATOR, ID_SEPARATOR,

// status line indicator

ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL,

② 用MFC ClassWizard在CEx_SDIView类中映射WM_MOUSEMOVE(移动鼠标)消息,并在映射函数中添加下列代码:

void CEx_SDIView::OnMouseMove(UINT nFlags, CPoint point) { }

CMainFrame* pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; // 获得主窗口指针 CStatusBar* pStatus=&pFrame->m_wndStatusBar; // 获得主窗口中的状态栏指针 CString str;

if (pFrame->m_bIsMouse) str.Format(\ else str.Empty();

// 为空字符

// 更新第二个窗格的文本

// 格式化文本

if (pStatus) pStatus->SetPaneText(1,str); CView::OnMouseMove(nFlags, point);

26

③ 将MainFrm.h文件中的受保护变量m_wndStatusBar变成公共变量。 ④ 在Ex_SDIView.cpp文件的开始处增加下列语句:

#include \iew.h\#include \

⑤ 编译运行并测试。 8.实现快捷菜单

① 用MFC ClassWizard在CMainFrame类添加WM_CONTEXTMENU消息映射,并在映射函数添加下列代码:

void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point) { }

CMenu* pSysMenu = GetMenu();

// 获得程序菜单指针

pSysMenu->GetSubMenu(2) ->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);

② 编译运行并测试。

六、实验运行结果

写出程序的运行结果。

实验十一:框架窗口和文档

一、实验目的与要求

(1)创建一个多文档(或单文档)应用程序Ex_MDI,用来操作“课程信息”文档或用

来操作“学生基本信息”文档。图11.1是“课程信息”文档添加时的界面。图11.2 学生基本信息添加。(两者任选其一,以下以操作“课程信息”文档为例进行讲解。操作“学生基本信息”文档参见教材)。 (2)创建一个可序列化类CCourseInfo,用于“课程信息”的序列化操作。 (3)建立菜单系统,其基本菜单命令包括“添加”、“打开”和“保存”。选择“添加”菜单命令,弹出相应的信息对话框,添加后信息显示在视图中,并保存在相应的CObArray类对象。选择“保存”菜单命令,将添加的信息保存在指定的文件中。选择“打开”菜单命令,将保存的文件内容读取并显示在视图中。

27

图11.1 课程信息添加 图11.2 学生基本信息添加

二、实验类型

验证型

三、实验原理及说明

掌握文档序列化的方法。

四、实验仪器

序 号 1 名 称 计算机 主要用途 编写程序 五、实验内容和步骤

1.启动Visual C++ 6.0

打开计算机,启动Visual C++ 6.0系统。

2.创建多文档应用程序Ex_MDI

用MFC AppWizard创建一个默认的多文档应用程序Ex_MDI。

3.复制 “课程信息”对话框

① 将Ex_Student项目工作区切换到ResourceView页面,展开Dialog资源的所有项。 ② 单击开发环境标准工具栏上的“打开”按钮

,打开实验8中Ex_Ctrls的资源文件

Ex_Ctrl.rc,展开Dialog资源的所有项,选定IDD_COURSE对话框资源项,按住Ctrl键,将其拖放到Ex_Student项目的Dialog资源处。

4.复制对话框类CCourseDlg

① 单击标准工具栏上的“打开”按钮,在“打开”文件对话框中,定位到Ex_Ctrls项目文件夹,选中CourseDlg.h和CourseDlg.cpp文件,按快捷键Ctrl+C,然后将“打开”文件对话框的文件“查找范围”定位到本项目Ex_MDI的文件夹中,按快捷键Ctrl+V、CourseDlg和CourseDlg类的源代码文件就复制过来了。

② 关闭“打开”文件对话框,选择“工程”→“添加工程”→Files菜单,在弹出的Insert Files Into Project对话框中选中刚才复制的源文件,单击“确定”按钮, CCourseDlg类就添加到Ex_MDI项目中。

③打开CourseDlg.cpp文件,将文件前面的头文件包含进行修改,如下所示:

#include \ #include \

// 修改原来的#include \

5.实现MFC ClassWizard对CCourse类的支持

若此时打开MFC ClassWizard对话框,在Class name组合框中有时是找不到刚添加的CCourse类。为此需要进行下列操作:

① 单击标准工具栏上的“打开”按钮,在“打开”文件对话框中,将文件类型选择为“所有文件(*.*)”,在文件列表框中,右击文件Ex_MDI.clw,从弹出的快捷菜单中选择“删除”命令。这里的Ex_MDI.clw是项目Ex_MDI的类向导文件。

② 关闭“打开”文件对话框后,按快捷键Ctrl+W,出现一个消息对话框,询问是否从资源中重新创建一个类向导文件,单击“是(Y)”按钮,出现如图11.3所示的对话框。

28

图11.3 重新创建类向导文件

③ 单击Add All按钮,再单击OK按钮。

6.添加一个CCourseInfo类并使该类可序列化

① 选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C/C++ Header File项,在右边的“文件”下的编辑框中输入CourseInfo.h,单击“确定”按钮。

② 在文档窗口中输入下面的代码:

class CCourseInfo : public CObject { CString strNO; CString strName; };

CString CString BYTE BYTE

strSpecial; strType; nOpen; nHours;

// 课程号 // 课课名称 // 所属专业 // 课程类型 // 开课学期 // 课时数 // 学分

// 序列化声明

float fCredit; DECLARE_SERIAL(CCourseInfo)

public:

CCourseInfo() {};

CCourseInfo(CString id, CString name, CString special, CString type, BYTE term, BYTE hours, float credit); void Serialize(CArchive &ar); void Display(int y, CDC *pDC); // 在坐标为(0,y)处显示数据

③ 再次选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中输入

CourseInfo.cpp,单击“确定”按钮。

④ 在文档窗口中输入下面的代码:

#include \#include \

CCourseInfo::CCourseInfo(CString id, CString name, CString special, CString type, BYTE term, BYTE hours, float credit) {

strNO

= id;

strName = name; strSpecial = special;

29

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库计算机科学与技术《Vc 程序设计》实验指导书-07计(6)在线全文阅读。

计算机科学与技术《Vc 程序设计》实验指导书-07计(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/293243.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219