Windows编程实验报告_第1页
Windows编程实验报告_第2页
Windows编程实验报告_第3页
Windows编程实验报告_第4页
Windows编程实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

院 系 计算机科学学院 专 业 软件工程 年 级 2012 级 课程名称 WINDOWS 程序设计 组 员 王钟铭 马明 周亮 指导教师 孙阳光 2015 年 5 月 16 日 年级2012 级学号 2012213651 20122136722012213684 专业软件工程姓名王钟铭王钟铭马明马明周亮周亮 设计型综合型创新型实验 名称 使用使用 MFC 实现实现 GDI 绘图绘图 实验 类型 实 验 目 的 或 要 求 一 实验目的和要求一 实验目的和要求 目的 图形设备接口 GDI 把应用程序的函数调用传递给图形设备驱动程序 由相关驱动程序来执行与硬件相关的函数 GDI 向应用程序提供一个设备无关的编程 同时以设备相关的格式和具体的硬件设备交互 掌握在 MFC 中使用 GDI 进行绘图操作 要求 用 MFC 使用 GDI 进行绘图操作 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 二 实验原理和步骤二 实验原理和步骤 在 MFC 使用两类对象 1 设备上下文对象 2 GDI 对像 其中 主要用 CClientDC 和 CPen 来实现 主要有以下三个步骤 1 定义数据结构类型和变量 2 初始化绘图信息 3 绘图过程的实现 三 核心代码三 核心代码 CDlg2 CDlg2 CWnd pParent NULL CDialog CDlg2 IDD pParent AFX DATA INIT CDlg2 NOTE the ClassWizard will add member initialization here AFX DATA INIT void CDlg2 DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CDlg2 NOTE the ClassWizard will add DDX and DDV calls here AFX DATA MAP BEGIN MESSAGE MAP CDlg2 CDialog AFX MSG MAP CDlg2 ON WM MOUSEMOVE AFX MSG MAP END MESSAGE MAP CDlg2 message handlers 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 void CDlg2 OnMouseMove UINT nFlags CPoint point TODO Add your message handler code here and or call default oldp point CClientDC cdc this 定义客户区设备环境 if nFlags pen CreatePen PS SOLID 5 RGB 0 255 0 cdc SelectObject cdc MoveTo oldp x oldp y cdc LineTo point x point y 绘制线段 oldp point CDialog OnMouseMove nFlags point 四 实验结果分析四 实验结果分析 实验结果 实 验 结 果 分 析 及 心 得 体 会 通过这次的实验 我学会了初步利用 WINDOWS 提供的图形设备借口 GDA 将图 形显示到显示器上 本次实验的学习 加深了我对 Windows 编程中 MFC 中这两类对 象的使用 掌握了新的技能 让我在今后的学习中对 Windows 中 MFC 的了解更加深 刻 成 绩 评 定 教师签名 年 月 日 年级2012 级学号201221365120122136722012213684 专业软件工程姓名王钟铭王钟铭马明马明周亮周亮 设计型综合型创新型实验 名称 使用使用 MFC 实现位图实现位图 实验 类型 实 验 目 的 或 要 求 一 实验目的和要求一 实验目的和要求 目的 掌握创建自定义位图控件 这是允许在每一种按钮状态下呈现不同的位图 这些状态包括 disabled normal mouse over 还有 button pressed 除了按钮的图像 让 我们的按钮饱含文本 并且根据按钮图片控制文本的对齐方式也很重要 按钮采用 XP 样式 还包含了我们定制的一些特性 要求 使用 MFC 实现位图 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 二 实验原理和步骤二 实验原理和步骤 1 在内存条中创建位图对象 2 根据 BITMAP 结构在内存条中创建位图对象 3 创建与指定设备上下文兼容的位图的对象 4 从应用程序资源中加载位图对象 有两种形式 可以根据资源名或资源 ID 加载 三 核心代码三 核心代码 CDlg3 OnBnClickedButton1 if number GetWindowRect this ScreenToClient CClientDC cdc this CDC mdc TempDC BITMAP BmpInfo CBitmap ClientBmp pOldBmp mdc CreateCompatibleDC TempDC CreateCompatibleDC ClientBmp CreateCompatibleBitmap mdc SelectObject TempDC SelectObject bmp number GetBitmap mdc TransparentBlt 0 0 300 300 cdc BitBlt 100 50 300 300 number ClientBmp DeleteObject mdc DeleteDC 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 void CDlg3 OnBnClickedButton2 if number 4 MessageBox 没有下一张了 number 2 return CRect wRect this GetWindowRect this ScreenToClient CClientDC cdc this CDC mdc TempDC BITMAP BmpInfo CBitmap ClientBmp pOldBmp mdc CreateCompatibleDC TempDC CreateCompatibleDC ClientBmp CreateCompatibleBitmap mdc SelectObject TempDC SelectObject bmp number GetBitmap mdc BitBlt 0 0 wRect Width wRect Height mdc TransparentBlt 0 0 300 300 cdc BitBlt 100 50 300 300 number ClientBmp DeleteObject mdc DeleteDC TODO 在此添加控件通知处理程序代码 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 四 运行结果四 运行结果 实验结果 实 验 结 果 分 析 及 心 得 体 会 位图是储存在计算机内存当中的一个 GDI 对象 本次的实验让我学会了在 BITMAP 结构在内存条中创建位图对象 也让我学会了在 MFC 中位图控件的使用 让我对计算机中图像的储存方式和绘制有了新的了解 对计算机中 MFC 的掌握有了 更深层次的了解 在今后的学习中有了更大的帮助 成 绩 评 定 教师签名 年 月 日 年级2012 级学号201221365120122136722012213684 专业软件工程姓名王钟铭王钟铭马明马明周亮周亮 设计型综合型创新型实验 名称 使用单行 多行编辑框输入显示文本使用单行 多行编辑框输入显示文本 实验 类型 实 验 目 的 或 要 求 一 实验目的和要求一 实验目的和要求 1 掌握编辑控件的常用形态 CEdit 类常用处理函数以及消息处理 2 掌握 SetTextColor 函数的应用 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 二 实现流程二 实现流程 1 设置 password 属性项 即用户输入时 用 显示 2 设置多行文本编辑框 且带水平和垂直滚动条 同时该编辑框为只读的 即 不允许用户输入 这时需要为其设置 MultiLine Horizontal scroll Vertical scroll Read only 3 添加 EN CHAGE 消息映射和消息响应函数 OnChangeUser 4 设置按钮的消息响应函数 WINGDIAPI COLORREF WINAPI SetTextColor in HDC hdc in COLORREF color hdc 是当前设备的句柄 color 是设置当前设备字符输出颜色 void CTest43BaseEditBoxDlg OnSet 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 三 核心代码三 核心代码 设置 password 属性项 即用户输入时 用 显示设置多行文本编辑框 且 带水平和垂直滚动条 同时该编辑框为只读的 即不允许用户输入 这时需要为其 设置 MultiLine Horizontal scroll Vertical scroll Read only void CTest43BaseEditBoxDlg OnChangeUser TODO 如果该控件是 RICHEDIT 控件 则它将不会 发送该通知 除非重写 CDialog OnInitDialog 函数并调用 CRichEditCtrl SetEventMask 同时将 ENM CHANGE 标志 或 运算到掩码中 TODO 在此添加控件通知处理程序代码 UpdateData true 获取编辑框值 m password m user UpdateData false 更新编辑控件内容 设置按钮的消息响应函数如下 void CTest43BaseEditBoxDlg OnSet TODO 在此添加控件通知处理程序代码 UpdateData true 获取编辑控件值 if m user IsEmpty m password IsEmpty 用户名 密码是 否为空 AfxMessageBox L 用户名和密码不能为空 return CString str str L 用户名为 m user L 密码为 m password L r n r n 实现文件的换行 CEdit pEdit CEdit GetDlgItem IDC USERLIST 获取 多行编辑控件窗口指针 pEdit SetSel 0 1 选择 全部文本 int nStart nEnd pEdit GetSel nStart nEnd pEdit SetSel nEnd nEnd 将插入符定位到最后的一个字 符 pEdit ReplaceSel str 插入需要的文本 m user m password L 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 UpdateData false 更新显示编辑控件的内容 GetDlgItem IDC USER SetFocus 设置用户名编辑框 输入的焦点 四 运行测试四 运行测试 实 验 结 果 分 析 及 心 得 体 会 通过本次的实验 我学会了 Windows 编辑控件中的功能的使用 CEdit 类常用处 理函数的使用 对以后的学习有了很大的帮助 在以后的学习中 会更加加深这方 面的学习 对以后有很大的帮助 成 绩 评 定 教师签名 年 月 日 成 绩 评 定 教师签名 年 月 日 年级2012 级学号201221365120122136722012213684 专业软件工程姓名王钟铭王钟铭马明马明周亮周亮 设计型综合型创新型实验 名称 设置编辑框控件的背景 文本颜色设置编辑框控件的背景 文本颜色 实验 类型 实 验 目 的 或 要 求 一 实验目的和要求一 实验目的和要求 1 学习美化控件显示 2 掌握 SetTextColor 函数的应用 3 掌握如何制定各种控件的颜色显示 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 二 实现流程二 实现流程 1 定义颜色 画刷 在对话框头文件 ColorEditBoxDlg h 中 定义画刷对象和颜 色结构 在对话框的初始化函数 OnInitDialg 中 进行相应的初始化 2 重载对话框 OnCtrlColor 函数 修改控件的绘制属性 使用 ClassWizard 为对 话框添加 WM CTLCOLOR 消息映射和消息响应函数 OnCtlColor 实现编辑框的颜 色设置 三 三 核心代码核心代码 CColorEditBoxDlg CColorEditBoxDlg CWnd pParent NULL CDialog CColorEditBoxDlg IDD pParent AFX DATA INIT CColorEditBoxDlg NOTE the ClassWizard will add member initialization here AFX DATA INIT Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m hIcon AfxGetApp LoadIcon IDR MAINFRAME void CColorEditBoxDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CColorEditBoxDlg NOTE the ClassWizard will add DDX and DDV calls here AFX DATA MAP 实 验 原 理 算 法 流 程 图 或 者 含 注 释 的 源 代 码 BOOL CColorEditBoxDlg OnInitDialog CDialog OnInitDialog Add About menu item to system menu IDM ABOUTBOX must be in the system command range ASSERT IDM ABOUTBOX ASSERT IDM ABOUTBOX AppendMenu MF SEPARATOR p

温馨提示

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

评论

0/150

提交评论