




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1部分 PART 实 验 实验 0 Visual C 6 0 中文版开发环境 实验目的和要求 1 熟悉 Visual C 6 0 的开发环境 工具栏及各种窗口 2 显示和隐藏工具栏 3 用应用程序向导创建一个控制台应用项目 Ex Hello 4 输入并编译一个新的 C 程序 实验准备和说明 1 在第一次上课时进行本次实验 2 熟悉 Windows 2000 操作系统的环境和基本操作 3 熟悉实验报告的书写格式 这里给出下列建议 实验报告采用 A4 大小纸张 封面一般包含实验目次 实验题目 班级 姓名 日期 和机构名称 报告内容一般包括实验目的和要求 实验步骤 实验思考和总结 需要指 出的是 实验步骤不是书本内容的复制 而是自己结合实验内容进行探索的过程 教师 也可根据具体情况提出新的实验报告格式 4 阅读下列关于 Visual C 的说明 Visual C 是 Microsoft 公司推出的目前使用极为广泛的基于 Windows 平台的可视化 编程环境 Visual C 6 0 是在以往版本不断更新的基础上形成的 由于其功能强大 灵 活性好 完全可扩展以及具有强有力的 Internet 支持 在各种 C 语言开发工具中脱颖而 出 成为目前最为流行的 C 语言集成开发环境 Visual C 6 0 分为标准版 专业版和企业版 3 种 但其基本功能是相同的 Visual C 6 05 中文版是在 Visual C 6 0 基础上进行汉化的一个版本 本书以此版本作为编程 环境 为统一起见 本书仍称为 Visual C 6 0 并以 Windows 2000 作为操作系统 Visual C 实训2 实验内容和步骤 1 启动 Windows 2000 操作系统 打开计算机 启动 Windows 2000 操作系统 2 创建工作文件夹 创建 Visual C 6 0 的工作文件夹 Visual C 程序 实验 表示自己的文件夹 在文件夹 实验 下再创建一个文件夹 实验 0 下一次实验就在 实验 文件夹下 创建子文件夹 实验 1 依此类推 以后实验所创建的工程都在相应的文件夹下 这样 既便于管理 又容易查找 3 启动 Visual C 6 0 选择 开始 程序 Microsoft Visual Studio 6 0 Microsoft Visual C 6 0 运行 Visual C 6 0 第一次运行时 将显示 当时的提示 对话框 单击 下一个提示 按钮 可看到有关各种操作的提示 如果取 消选中 再启动时显示提示 复选框 那么 下一次运行 Visual C 6 0 将不再出现此对 话框 如图 0 1 所示 4 认识开发环境界面 单击 结束 按钮关闭此对话框 进入 Visual C 6 0 开发环境 开发环境界面由标 题栏 菜单栏 工具栏 项目工作区窗口 文档窗口 输出窗口和状态栏等组成 如图 0 2 所示 图 0 2 Visual C 6 0 中文版开发环境 标题栏一般有 最小化 最大化 或 还原 以及 关闭 按钮 单 击 关闭 按钮将退出开发环境 标题栏上还显示出当前被操作的文档的文件名 工具栏菜单栏 项目工作区 窗口 输出窗口 文档窗口 输出窗口标签 标题栏 状态栏 图 0 1 显示提示对话框 实验 0 Visual C 6 0 中文版开发环境 3 菜单栏包含了开发环境中几乎所有的命令 它为用户提供了文档操作 程序的编译 调试 窗口操作等一系列的功能 菜单中的一些常用命令还被排列在相应的工具栏上 以便用户更好地操作 项目工作区窗口包含用户项目的一些信息 包括 类 ClassView 页面 项目文件 FileView 页面 和资源 ResourceView 页面 等 在项目工作区窗口中的任何标题或 图标处单击鼠标右键 都会弹出相应的快捷菜单 包含当前状态下的一些常用操作 文档窗口一般位于开发环境中的右边 各种程序代码的源文件 资源文件 文档文 件等都可以通过文档窗口显示出来 输出窗口一般出现在开发环境窗口的底部 包括编译 Build 调试 Debug 查 找文件 Find in Files 等相关信息的输出 这些输出信息以多页面标签的形式出现在输 出窗口中 例如 编译 页面标签显示的是程序在编译和连接时的进度及错误信息 状态栏一般位于开发环境的最底部 它用来显示当前操作状态 注释 文本光标所 在的行列号等信息 5 显示和隐藏工具栏 显示或隐藏工具栏可以使用 定制 对话框或快捷菜单两种方式进行操作 1 定制 对话框方式 操作步骤如下 选择 工具 菜单 定制 菜单项 弹出 定制 对话框 如图 0 3 所示 图 0 3 定制 对话框图 0 4 工具栏的快捷菜单 单击 工具栏 标签项 将显示出所有的工具栏名称 凡显示在开发环境上的工 具栏名称前面均带有选中标记 单击 编译 工具栏名称 复选框中带有选中标记 该工具栏将显示开发环境中 再单击 编译 工具栏名称 复选框的选中标记将去除 该工具栏从开发环境中消失 其他工具栏的显示和隐藏均可类似操作 2 快捷菜单方式 如果嫌上述操作不够便捷 那么可以在开发环境中工具栏或菜单栏处右击鼠标 将 会弹出一个包含工具栏名称的快捷菜单 如图 0 4 所示 凡显示在开发环境上的工具栏 其相应的菜单项前面就会有选中标记 对相应的工具栏进行选择将使其显示或隐藏 6 工具栏的浮动与停泊 Visual C 6 0 的工具栏具有 浮动 与 停泊 功能 Visual C 6 0 启动后 系统 Visual C 实训4 默认将常用工具栏 停泊 在主窗口的顶部 若将鼠标指针指向工具栏的非按钮区域 可以将工具栏拖放到主窗口的四周或中央 如果拖放到窗口的中央处 则工具栏成为 浮动 的工具窗口 窗口的标题就是工具栏的类型名称 拖放工具栏窗口的边或角可 以改变其 形状 图 0 5 浮动的 标准 工具栏 例如 将鼠标指针指向 标准 工具栏的非按钮区域 按住鼠标左键不放 将其拖 至屏幕中央 释放鼠标左键 观察变化 再将鼠标指针移至工具栏窗口的边界处 按住 鼠标左键不放并拖动 观察大小的变化 图 0 5 是 标准 工具栏浮动的状态 其大小已 被拖放过 当然 浮动和停泊两种状态可以进行切换 在 浮动 的工具窗口标题栏处双击鼠 标左键或将其拖放到主窗口的四周 都能使其停泊在相应的位置处 在 停泊 工具栏 的非按钮区域双击鼠标左键 可切换成 浮动 的工具窗口 7 创建和编连控制台应用项目 在 Visual C 6 0 中 用应用程序向导创建和编连一个控制台应用程序 可按下列步 骤进行 选择 文件 新建 菜单命令 显示出 新建 对话框 如图 0 6 所示 图 0 6 新建一个工程 选择 工程 标签 并从列表框中选中 Win32 Console Application 项 实验 0 Visual C 6 0 中文版开发环境 5 在 工程 编辑框中键入控制台应用程序项目名称 Ex Hello 并将项目文件夹定 位到 D Visual C 程序 实验 实验 0 单击 确定 按钮 显示 Win32 应用程序向导对话框 第一步是询问项目类型 如图 0 7 所示 图 0 7 控制台应用程序的第 1 步 选中 A Hello World application 项 单击 完成 按钮 系统将显示向导创建 的信息 单击 确定 按钮将自动创建此应用程序 默认时 项目工作区窗口显示的是 ClassView 页面 将所有内容展开 双击 main 项 在文档窗口中将 main 函数体中的 Hello World n 改为 I Like Visual C 6 0 中文版 n 结果如图 0 8 所示 图 0 8 修改代码 说明 在输入字符和汉字时 要切换到相应的输入方法中 除了字符串和注释可以 使用汉字外 其余一律采用英文字符输入 代码中 stdafx h 是每个应用程序所必有的预 编译头文件 程序所用到的 Visual C 头文件包含均添加到这个文件中 单击编译工具条上的生成工具按钮或直接按快捷键 F7 系统 开始对 Ex Hello 进行编译 连接 同时在输出窗口中观察出现的内容 当出现 Visual C 实训6 表示 Ex Hello exe 可执行文件已经正确无误地生成了 单击编译工具条上的运行工具按钮或直接按快捷键 Ctrl F5 就可以运行刚刚生成的 Ex Hello exe 了 结果如图 0 9 所示 8 输入并编译一个新的 C 程序 选择 文件 关闭工作区 菜单 关闭原 来的项目 按上面的方法创建一个 Win32 Console Application 项目 Ex Simple 在向导的第一步中选择 An empty project 类型 再次选择 文件 新建 菜单命令 显示出 新建 对话框 文件 页面 如图 0 10 所示 图 0 10 新建 对话框的 文件 页面 在文件类型列表中选择 C Source File 然后在 文件 框中输入要创建的文件 名 Ex Simple 文件扩展名可以不必输入 系统会自动添加 cpp 扩展名 cpp 是 C Plus Plus 的缩写 即 C 的意思 单击 确定 按钮 在打开的文档窗口中输入下列 C 代 码 程序Ex Simple 一个简单的C 程序 C 程序的基本结构 include void main double r area 声明变量 cout r 从键盘上输入变量r的值 area 3 14159 r r 计算面积 cout 圆的面积为 area n 输出面积 此时在文档窗口中所有代码的颜色都发生改变 这是 Visual C 6 0 的文本编辑 图 0 9 运行结果 实验 0 Visual C 6 0 中文版开发环境 7 器所具有的语法颜色功能如图 0 11 所示 其中 绿色表示注释 蓝色表示关键词等 图 0 11 编辑器的代码语法颜色功能 按快捷键 F7 系统开始编译 编译后 再按快捷键 Ctrl F5 就可运行了 说明 对于 C C 语言工程项目的创建 凡没有特别说明 均采用此方法 9 退出 Visual C 6 0 退出 Visual C 6 0 有两种方式 一种是单击主窗口右上角的 关闭 按钮 另一 种是选择 File Exit 菜单 10 写出实验报告 结合思考与练习题 写出实验报告 思考与练习 1 除工具栏可以浮动和停泊外 看看还有哪些窗口可以这样操作 2 经过创建项目文件的实验 试总结出创建一个控制台应用项目的一般方法 Visual C 实训8 实实验验 1 Windows 编程基础编程基础 实验目的和要求 创建一个 Win32 应用程序 Ex SDK 在程序中构造一个编辑框控件和一个按钮 编 辑框用于输入一元二次方程的系数 各系数之间用逗号分隔 当单击 计算 按钮 获 取方程系数 然后将求得的根通过 TextOut 显示在窗口客户区中 实验准备和说明 1 具备知识 简单的 SDK 编程基础 2 准备本次上机所需要的程序 3 创建本次实验工作文件夹 Visual C 程序 实验 实验 1 实验内容和步骤 1 启动 Visual C 6 0 打开计算机 启动 Visual C 6 0 系统 2 创建工程并添加代码 选择 文件 新建 菜单命令 打开应用程序向导 显示出 新建 对话框 单击 工程 标签 从列表框中选中 Win32 Application Win32 应用程序 项 在工程 名称框中输入 Win32 应用程序项目名称 Ex SDK 单击浏览按钮 将工程定位到文件夹 Visual C 6 0 程序 实验 实验 1 单击 确定 按钮继续 在向导第一步对话框中 选中 An empty project 一个空 的工程 项 单击 完成 按钮 系统将显示 AppWizard 应用程序向导 的创建信息 单击 确定 按钮 系统将自动创建此应用程序 再次选择 文件 新建 菜单命令 显示出 新建 对话框 单击 文件 标签 在左边的列表框中选择 C Source File 项 在右边的 文件 下的编辑框中输入 Ex SDK cpp 单击 确定 按钮 在打开的文档窗口中输入下面的代码 include include include 求一元二次方程的根 函数返回根的个数 int GetRoot float a float b float c double root double delta deltasqrt delta b b 4 0 a c if delta 0 0 return 0 无根 实验 1 Windows 编程基础 9 deltasqrt sqrt delta if a 0 0 root 0 b deltasqrt 2 0 a root 1 b deltasqrt 2 0 a else if b 0 0 root 0 root 1 c b elsereturn 0 if root 0 root 1 return 1 else return 2 char str 80 LRESULT CALLBACK WndProc HWND UINT WPARAM LPARAM 窗口过程 int WINAPI WinMain HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR lpCmdLine int nCmdShow HWND hwnd 窗口句柄 MSG msg 消息 WNDCLASSwndclass 窗口类 wndclass style CS HREDRAW CS VREDRAW wndclass lpfnWndProc WndProc wndclass cbClsExtra 0 wndclass cbWndExtra 0 wndclass hInstance hInstance wndclass hIcon LoadIcon NULL IDI APPLICATION wndclass hCursor LoadCursor NULL IDC ARROW wndclass hbrBackground HBRUSH GetStockObject WHITE BRUSH wndclass lpszMenuName NULL wndclass lpszClassName SDKWin 窗口类名 if RegisterClass return 0 创建窗口 hwnd CreateWindow SDKWin 窗口类名 实验1 Windows编程基础 窗口标题 WS OVERLAPPEDWINDOW 窗口样式 CW USEDEFAULT 窗口最初的 x 位置 CW USEDEFAULT 窗口最初的 y 位置 CW USEDEFAULT 窗口最初的 x 大小 CW USEDEFAULT 窗口最初的 y 大小 NULL 父窗口句柄 NULL 窗口菜单句柄 hInstance 应用程序实例句柄 NULL 创建窗口的参数 ShowWindow hwnd nCmdShow 显示窗口 Visual C 实训10 UpdateWindow hwnd 更新窗口 包括窗口的客户区 while GetMessage 转换某些键盘消息 DispatchMessage 将消息发送给窗口过程 这里是WndProc return msg wParam LRESULT CALLBACK WndProc HWND hwnd UINT message WPARAM wParam LPARAM lParam HDChdc PAINTSTRUCT ps static HWNDhwndButton hwndEdit charstrEdit 80 strA 3 80 strHint 80 floata 3 doubleroot 2 inti j k m switch message case WM CREATE 窗口创建产生的消息 hwndEdit CreateWindow edit NULL WS CHILD WS VISIBLE WS BORDER 10 60 200 25 hwnd NULL NULL NULL hwndButton CreateWindow button 计 算 WS CHILD WS VISIBLE BS PUSHBUTTON 240 60 80 25 hwnd NULL NULL NULL return 0 case WM COMMAND 命令消息 控件产生的通知代码在wParam的高字中 if HWND lParam hwndButton 获取编辑框内容 分隔字符串 k 0 m 0 for j 0 j 80 j if strEdit j k m 0 else strA k m strEdit j m for i 0 i 3 i a i float atof strA i 将字符串转换成float数值 int n GetRoot a 0 a 1 a 2 root if niDelta 0 5f if m fScore1100 0 m fScore1 100 0f UpdateData FALSE 将变量的内容显示在控件中 pResult 0 打开 IDD EX CTRLS DIALOG 对话框资源 在 课程信息 按钮下方添加一 个 学生基本信息 按钮 并将 ID 号设为 IDC BUTTON STUINFO 用 MFC ClassWizard 为按钮 IDC BUTTON STUINFO 添加 BN CLICKED 消息映 射 并添加下列代码 void CEx CtrlsDlg OnButtonStuinfo CStuInfoDlg dlg if IDOK dlg DoModal return while m List GetCount 0 m List DeleteString 0 CString strSex 女 if dlg m bMale strSex 男 m List AddString 姓名 dlg m strName m List AddString 学号 dlg m strNo m List AddString 性别 strSex m List AddString 出生年月 dlg m tBirth Format Y m d m List AddString 所学专业 dlg m strSpecial 在 Ex CtrlsDlg cpp 文件的前面添加 CStuInfoDlg 类的头文件包含 关键 include CourseDlg h include StuInfoDlg h 编译运行并测试 结果如图 3 3 所示 图 3 3 学生基本信息添加后的结果 4 改变对话框背景颜色 将项目工作区窗口切换到 ResourceView 页面 打开 IDD EX CTRLS DIALOG Visual C 实训20 对话框资源 打开对话框网格 参看图 3 2 的控件布局 为对话框添加如表 3 3 所示的一些控 件 表 3 3 添加的控件 添加的控件ID 号标 题其 他 属 性 垂直滚动条IDC SCROLLBAR RED 默认 滑动条 绿色 IDC SLIDER GREEN 方位为 Vertical 其他默认 滑动条 蓝色 IDC SLIDER BLUE 方位为 Vertical 其他默认 用 MFC ClassWizard 为表 3 4 控件添加成员变量 表 3 4 控件变量 控件 ID 号变 量 类 别变 量 类 型变 量 名范围和大小 IDC SCROLLBAR REDControlCScrollBarm scrollRed IDC SLIDER GREENControlCSliderCtrlm sliderGreen IDC SLIDER GREENValueintm nBlue IDC SLIDER BLUEControlCSliderCtrlm sliderBlue IDC SLIDER BLUEValueintm nBlue 为 CEx CtrlsDlg 类添加两个成员变量 一个是 int 型 m nRed 用来设置颜色 R G B 中的红色分量 另一个是画刷 CBrush 类对象 m Brush 用来设置对话框背景所 需要的画刷 在 CEx CtrlsDlg OnInitDialog 函数中添加下列代码 BOOL CEx CtrlsDlg OnInitDialog m scrollRed SetScrollRange 0 255 m sliderBlue SetRange 0 255 m sliderGreen SetRange 0 255 m nBlue m nGreen m nRed 192 UpdateData FALSE m scrollRed SetScrollPos m nRed return TRUE return TRUE unless you set the focus to a control 用 MFC ClassWizard 为 CEx CtrlsDlg 类映射 WM VSCROLL 消息 并添加下列 代码 void CEx CtrlsDlg OnVScroll UINT nSBCode UINT nPos CScrollBar pScrollBar int nID pScrollBar GetDlgCtrlID 获取对话框中控件ID号 if nID IDC SCROLLBAR RED 或是滚动条产生的水平滚动消息 switch nSBCode 实验 3 常用控件 2 21 case SB LINEUP m nRed 单击滚动条向上箭头 break case SB LINEDOWN m nRed 单击滚动条向下箭头 break case SB PAGEUP m nRed 10 break case SB PAGEDOWN m nRed 10 break case SB THUMBTRACK m nRed nPos break if m nRed255 m nRed 255 m scrollRed SetScrollPos m nRed Invalidate 使对话框无效 强迫系统重绘对话框 CDialog OnVScroll nSBCode nPos pScrollBar 用 MFC ClassWizard 为 CEx CtrlsDlg 类映射 WM CTLCOLOR 消息 并添加下列 代码 HBRUSH CEx CtrlsDlg OnCtlColor CDC pDC CWnd pWnd UINT nCtlColor HBRUSH hbr CDialog OnCtlColor pDC pWnd nCtlColor UpdateData TRUE COLORREF color RGB m nRed m nGreen m nBlue m Brush Detach 使画刷和对象分离 m Brush CreateSolidBrush color 创建颜色画刷 pDC SetBkColor color 设置背景颜色 return HBRUSH m Brush 返回画刷句柄 以便系统使此画刷绘制对话框 编译运行并测试 5 写出实验报告 分析上述运行结果以及思考与练习 写出实验报告 思考与练习 1 若将控制绿色和蓝色颜色分量的滑动条全部换成滚动条 则代码应如何修改 2 若将 CEx CtrlsDlg 对话框中的列表框换成静态文本 并用于显示信息 则应如 何实现 Visual C 实训22 实验 4 列表控件和树控件 实验目的要求 1 创建一个对话框应用程序 Ex List 其主界面如图 4 1 所示 2 设计一个如图 4 2 所示的 学生课程成绩 对话框 创建并完善该对话框类 CScoreDlg 图 4 1 Ex List 界面图 4 2 学生课程成绩 对话框 3 实现功能 单击图 4 1 中的 学生课程成绩 按钮 弹出 学生课程成绩 对 话框 单击 添加 按钮 学生课程成绩添加到列表控件 若选中列表项 修改 按钮 由原来的禁用变成可用 单击 修改 按钮 则弹出的 学生课程成绩 对话框中的 添加 按钮标题变成 修改 单击 学生课程成绩 对话框中的 修改 按钮 该列 表项的内容被修改 4 按照教材 树控件 中的示例进行实验 实验准备和说明 1 具备知识 图像列表 列表控件和树控件 2 创建本次实验工作文件夹 Visual C 程序 实验 实验 4 实验内容和步骤 1 启动 Visual C 6 0 打开计算机 启动 Visual C 6 0 系统 2 创建对话框应用程序 Ex List 并设计其界面 选择 文件 新建 菜单 在弹出的 新建 对话框中选择 工程 页面 选择 MFC AppWizard exe 在工程框中输入 Ex List 并将工程文件夹定位到 Visual C 程序 实验 实验 4 单击 确定 按钮 在出现的 Step 1 对话框中选择 基本对话 框 应用程序 类型 单击 完成 按钮 在对话框编辑器中 单击对话框工具栏上的切换网格按钮 显示对话框网格 实验 4 列表控件和树控件 23 将对话框标题改为 列表控件 调整对话框的大小 删除对话框中间的 TODO 在这里设置对话控制 静态文 本控件和 确定 按钮控件 将 取消 按钮标题改为 退出 并移至对话框的下方 添加两个按钮 一个是 学生课程成绩 按钮 ID 为 IDC BUTTON SCORE 另 一个是 修改 按钮 ID 为 IDC BUTTON CHANGE 添加一个列表控件 取其默认 ID 号 将 查看 风格设为 Report 如图 4 3 所示 图 4 3 设置列表控件的 查看 风格 3 添加并设计 学生课程成绩 对话框 按 Ctrl R 快捷键 弹出 插入资源 对话框 在资源类型列表中选择 Dialog 单 击 新建 按钮 将该对话框资源的 ID 设为 IDD SCORE 标题设为 学生课程成绩 字体设为 宋体 9 号 将 OK 和 Cancel 按钮的标题改为 添加 和 取消 打开对话框网格 参看图 4 2 的控件布局 为对话框添加如表所示的一些控件 表 4 1 学生课程成绩对话框添加的控件 添加的控件ID 号标 题其 他 属 性 编辑框 学号 IDC EDIT STUNO 默认 编辑框 课程号 IDC EDIT COURSENO 默认 编辑框 成绩 IDC EDIT SCORE 默认 编辑框 学分 IDC EDIT CREDIT 默认 按 Ctrl W 快捷键或双击对话框资源模板的空白处 为 IDD SCORE 创建一个对 话框类 CScoreDlg 打开 ClassWizard 的 Member Variables 页面 看 Class name 是否是 CScoreDlg 选 中所需的控件 ID 号 双击鼠标或单击 Add Variables 按钮 依次为表 4 2 控件增加成员变 量 表 4 2 控件变量 控件 ID 号变 量 类 别变 量 类 型变 量 名范围和大小 IDC EDIT STUNOValueCStringm strStuNo IDC EDIT COURSENOValueCStringm strCourseNo IDC EDIT SCOREValuefloatm fScore Visual C 实训24 IDC EDIT CREDITValuefloatm fCredit 用 MFC ClassWizard 为按钮 IDOK 添加 BN CLICKED 消息映射 并增加下列代 码 void CScoreDlg OnOK UpdateData m strStuNo TrimLeft if m strStuNo IsEmpty MessageBox 学号不能为空 return m strCourseNo TrimLeft if m strCourseNo IsEmpty MessageBox 课程号不能为空 return CDialog OnOK 为 CScoreDlg 类添加一个公有型 CString 类型成员变量 m strOKText 用来设置 IDOK 按钮的标题 并在 CScoreDlg 类构造函数中 将 m strOKText 设为空 如下面的 代码 CScoreDlg CScoreDlg CWnd pParent NULL CDialog CScoreDlg IDD pParent m strOKText Empty AFX DATA INIT CScoreDlg AFX DATA INIT 用 MFC ClassWizard 为 CScoreDlg 类映射 WM INITDIALOG 消息 并添加下列 代码 BOOL CScoreDlg OnInitDialog CDialog OnInitDialog if m strOKText IsEmpty GetDlgItem IDOK SetWindowText m strOKText return TRUE return TRUE unless you set the focus to a control 4 完善 CEx ListDlg 类代码 用 MFC ClassWizard 为 CEx ListDlg 类添加列表控件 IDC LIST1 变量 m ListCtrl 变量类型为 CListCtrl 实验 4 列表控件和树控件 25 在 CEx ListDlg OnInitDialog 函数中添加设置列表控件标题头代码 BOOL CEx ListDlg OnInitDialog CDialog OnInitDialog 创建列表控件的标题头 CString strHeader 4 学号 课程 成绩 学分 for int nCol 0 nColEnableWindow FALSE return TRUE return TRUE unless you set the focus to a control 用 MFC ClassWizard 映射按钮 IDC BUTTON SCORE 的 BN CLICKED 消息 并 添加下列代码 void CEx ListDlg OnButtonScore CScoreDlg dlg if IDOK dlg DoModal return int nItem m ListCtrl GetItemCount m ListCtrl InsertItem nItem dlg m strStuNo m ListCtrl SetItemText nItem 1 dlg m strCourseNo CString str str Format 4 1f dlg m fScore 注意 也是将整形转成字符串型 m ListCtrl SetItemText nItem 2 str str Format 3 1f dlg m fCredit m ListCtrl SetItemText nItem 3 str 用 MFC ClassWizard 映射按钮 IDC BUTTON CHANGE 的 BN CLICKED 消息 并添加下列代码 void CEx ListDlg OnButtonChange 获取被选择的列表项索引号 POSITION pos pos m ListCtrl GetFirstSelectedItemPosition if pos NULL MessageBox 你还没有选中列表项 return int nItem m ListCtrl GetNextSelectedItem pos CScoreDlg dlg dlg m strOKText 修改 dlg m strStuNo m ListCtrl GetItemText nItem 0 Visual C 实训26 dlg m strCourseNo m ListCtrl GetItemText nItem 1 CString str m ListCtrl GetItemText nItem 2 dlg m fScore float atof str str m ListCtrl GetItemText nItem 3 dlg m fCredit float atof str if IDOK dlg DoModal return m ListCtrl SetItemText nItem 0 dlg m strStuNo m ListCtrl SetItemText nItem 1 dlg m strCourseNo str Format 4 1f dlg m fScore m ListCtrl SetItemText nItem 2 str str Format 3 1f dlg m fCredit m ListCtrl SetItemText nItem 3 str 用 MFC ClassWizard 映射列表控件 IDC LIST1 的 LVN ITEMCHANGED 消息 并添加下列代码 void CEx ListDlg OnItemchangedList1 NMHDR pNMHDR LRESULT pResult NM LISTVIEW pNMListView NM LISTVIEW pNMHDR GetDlgItem IDC BUTTON CHANGE EnableWindow TRUE pResult 0 在 Ex ListDlg cpp 文件的前面添加 CScoreDlg 类的头文件包含 include Ex ListDlg h include ScoreDlg h 编译运行并测试 5 写出实验报告 分析上述运行结果以及思考与练习 写出实验报告 思考与练习 1 在图 4 1 中再添加一个 删除 按钮 若选中列表项 删除 按钮由原来的禁 用变成可用 单击 删除 按钮 删除选中的列表项 2 若将学生课程成绩按 学号 课程号 和 成绩 的层次关系显示在一个树 控件中 则应如何实现 实验 5 菜单 工具栏和状态栏 27 实验 5 菜单 工具栏和状态栏 实验目的和内容 1 创建一个单文档应用程序 Ex SDI 在 查看 菜单下添加一个子菜单 鼠标 位置 ID 为 ID VIEW MOUSE 当选择该菜单命令后 鼠标当前的位置显示 到状态栏上 同时该菜单项呈选中状态 再次选择该菜单命令 状态栏不再显 示当前鼠标位置 同时该菜单项的选中状态被去除 2 在工具栏上添加并设计一个工具按钮图标 使该按钮和 ID VIEW MOUSE 菜 单命令联动 并添加一个快捷键 Ctrl M 和该菜单命令联动 3 在窗口客户区中右击鼠标 弹出快捷菜单 显示主菜单 查看 中的菜单命令 结果如图 5 1 所示 图 5 1 Ex SDI 运行结果 实验准备和说明 1 具备知识 菜单 工具条和状态栏 2 创建本次实验工作文件夹 Visual C 程序 实验 实验 5 实验内容和步骤 1 启动 Visual C 6 0 打开计算机 启动 Visual C 6 0 系统 2 用 MFC AppWizard exe 创建一个默认的单文档应用程序 Ex SDI 选择 文件 新建 菜单 在弹出的 新建 对话框中选择 工程 标签 在应用程序项目类型列表框中选择 MFC AppWizard exe 的项目类型 将工程文件夹定 位到 Visual C 程序 实验 实验 5 并在工程框中输入项目名 Ex SDI Visual C 实训28 单击 确定 按钮 从出现的对话框中 选择单个文档 Single Document SDI 应用程序类型 保留其他的默认选项 单击 完成 按钮出现一个对话框 显示出用户在步骤中 作出的选择 单击 确定 按钮 系统开始创建 3 添加菜单 在项目工作区窗口中选择 ResourceView 页面 双击资源 Menu 项中的 IDR MAINFRAME 则菜单编辑器窗口出现在主界面的右边 相应的 Ex SDI 项目的菜单资源 被显示出来 单击 查看 菜单 则在该菜单的最后一项 Visual C 为用户留出了一个空位 置 用来输入新的菜单项 在菜单的空位置上双击鼠标左键 则出现它的属性对话框 如图 5 2 所示 在标 题框中输入 鼠标位置 void CMainFrame OnUpdateViewMouse CCmdUI pCmdUI pCmdUI SetCheck m bIsMouse 编译运行并测试 6 设置快捷键 在项目工作区窗口的 ResourceView 页面中 双击 Accelerator 中的 IDR MAINFRAME 打开快捷键资源 双击加速键列表的最下端的空行 弹出如图 5 4 所示的 Accel Properities 对话框 选择菜单项 ID VIEW MOUSE 作为要联动的快捷键的 ID 号 然后单击 下一键 按钮 并按下 Ctrl 1 作为此加速键的键值 图 5 4 设置快捷键 编译运行并测试 7 添加状态栏窗格并显示鼠标当前位置 打开 MainFrm cpp 文件 将原先的 indicators 数组修改如下 static UINT indicators ID SEPARATOR status line indicator ID SEPARATOR 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 获得主窗口中的状态栏指针 CString str Visual C 实训30 if pFrame m bIsMouse str Format d d point x point y 格式化文本 else str Empty 为空字符 if pStatus pStatus SetPaneText 1 str 更新第二个窗格的文本 CView OnMouseMove nFlags point 将 MainFrm h 文件中的受保护变量 m wndStatusBar 变成公共变量 在 Ex SDIView cpp 文件的开始处增加下列语句 include Ex SDIView h include MainFrm h 编译运行并测试 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 编译运行并测试 9 写出实验报告 分析上述运行结果以及思考与练习 写出实验报告 思考与练习 若状态栏只有一个用户定义的指示器窗格 其 ID 号为 ID TEXT PANE 应如何定 义 若当用户在客户区双击鼠标时 在该窗格中显示 双击鼠标 字样 则应如何编程 实验 6 框架窗口和文档 31 实验 6 框架窗口和文档 实验目的和要求 1 创建一个多文档应用程序 Ex MDI 具有两种类型的文档模板 一类是用来操 作 课程信息 文档 另一类是用来操作 学生基本信息 文档 其中 用于操作 学 生基本信息 的文档和视图类分别为 CEx StudentDoc 和 CEx StudentView 2 创建一个可序列化类 CStudentInfo 用于 学生基本信息 的序列化操作 3 创建一个可序列化类 CCourseInfo 用于 课程信息 的序列化操作 4 建立用于两种类型文档的菜单系统 其基本菜单命令包括 添加 打开 和 保存 选择 添加 菜单命令 弹出相应的信息对话框 添加后信息显示在视图中 并保存在相应的 CObArray 类对象 选择 保存 菜单命令 将添加的信息保存在指定的 文件中 选择 打开 菜单命令 将保存的文件内容读取并显示在视图中 图 6 1 和 6 2 分别是 课程信息 和 学生基本信息 文档添加时的界面 图 6 1 课程信息添加 图 6 2 学生基本信息添加 Visual C 实训32 实验准备和说明 1 具备知识 框架窗口 文档模板和文档的读写 2 创建本次实验工作文件夹 Visual C 程序 实验 实验 6 3 建议本实验分两次进行 实验内容和步骤 1 启动 Visual C 6 0 打开计算机 启动 Visual C 6 0 系统 2 创建多文档应用程序 Ex MDI 用 MFC AppWizard 创建一个默认的多文档应用程序 Ex MDI 3 复制 学生基本信息 和 课程信息 对话框 将 Ex Student 项目工作区切换到 ResourceView 页面 展开 Dialog 资源的所有项 单击开发环境标准工具栏上的 打开 按钮 打开实验 3 中 Ex Ctrls 的资源 文件 Ex Ctrl rc 展开 Dialog 资源的所有项 选定 IDD STUINFO 对话框资源项 按住 Ctrl 键 将其拖放到 Ex Student 项目的 Dialog 资源处 同样 再将 IDD COURSE 对话 框资源击中 4 复制对话框类 CStuInfoDlg 和 CCourseDlg 单击标准工具栏上的 打开 按钮 在 打开 文件对话框中 定位到 Ex Ctrls 项目文件夹 选中 StuInfoDlg h 和 StuInfoDlg cpp 以及 CourseDlg h 和 CourseDlg cpp 文件 按快捷键 Ctrl C 然后将 打开 文件对话框的文件 查找范围 定位到本项目 Ex MDI 的文件夹中 按快捷键 Ctrl V CStuInfoDlg 和 CCourseDlg 类的源代码文件就复制过来 了 关闭 打开 文件对话框 选择 工程 添加工程 Files 菜单 在弹出的 Insert Files Into Project 对话框中选中刚才复制的源文件 单击 确定 按钮 CStuInfoDlg 和 CCourseDlg 类就添加到 Ex MDI 项目中 打开 StuInfoDlg cpp 文件 将文件前面的头文件包含进行修改 如下所示 include Ex MDI h 修改原来的 include Ex Ctrls h include StuInfoDlg h 打开 CourseDlg cpp 文件 将文件前面的头文件包含进行修改 如下所示 include Ex MDI h 修改原来的 include Ex Ctrls h include CourseDlg h 5 实现 MFC ClassWizard 对 CStuInfoDlg 和 CCourse 类的支持 若此时打开 MFC ClassWizar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版实习单位实习学生权益保障合同汇编
- 2025版医疗器械公司售后服务人员劳动合同模板
- 2025版城市基础设施建设砂浆采购合同范本
- 2025年度土地承包经营权流转合同签订与执行指南
- 2025年外墙乳胶漆新型环保材料采购合同
- 2025版专业食堂食材配送与健康管理服务协议
- 2025年烧结砖行业绿色物流服务购销合同模板
- 2025版全民健身中心设施租赁协议书
- 2025年度水果品牌设计与包装合同
- 2025版水电水利工程环境保护与土壤修复设计合同
- 2025年公安辅警笔试题目题库(答案+解析)
- 2025年外事办公室翻译招聘面试(俄语)预测题及答案
- 2025年跨境电商物流服务佣金结算合作协议
- 房屋租赁合同交割清单列表
- 2025年公司主要负责人安全培训考试试题有完整答案
- 2025年度东营市专业技术人员继续教育公需科目试卷及答案
- 2025年公共卫生基本知识题库及答案
- 医院检验科微生物进修汇报
- 主播跟运营合作合同协议
- 用浪浪山正确打开开学第一课~课件
- 2025年云南国企招聘考试历年参考题库含答案详解(5卷)
评论
0/150
提交评论