通用对话框和自定义对话框的使用及图形绘制函数的使用和定时器的设置.docVIP

  • 81
  • 0
  • 约2.12万字
  • 约 36页
  • 2017-10-06 发布于重庆
  • 举报

通用对话框和自定义对话框的使用及图形绘制函数的使用和定时器的设置.doc

通用对话框和自定义对话框的使用及图形绘制函数的使用和定时器的设置

面向对象编程技术 实验四实验报告 班 级: 学 号: 姓 名:*** 版本号: 1 时 间:2009-11-07 目录 1 实验要求 ………..3 2 实验过程及结果 ..3 A对话框部分 3 基本要求部分 3-5 刷新窗口显示 5-13 B图形绘制部分 13 基本要求部分 13 刷新窗口显示 13-20 C定时器部分 20-21 D问题及解决方案 21 3 实验总结 21-22 附录 关键代码 22 1.对话框,时钟程序代码: 22-29 2.图形绘制函数代码: 29-36 实验要求 掌握通用对话框和自定义对话框的使用;掌握图形绘制函数的使用;掌握定时器的设置和定时消息响应 实验过程及结果 对话框部分: 研究第五章示例程序,理解通用对话框、自定义对话框的使用方式。 在自己的工作目录中建立新工程,工程名称DuiHuaKuang,文件名称DuiHuaKuang.cpp。从已有的示例程序中选取适当的代码,修改形成自己的框架。 增加对WM_PAINT消息的处理,在窗口客户区输出文本。显示如下图: 增加菜单资源,要求至少包含“更改文本颜色”和“更改背景颜色”两个命令。截图如下所示: 自定义一个简单的对话框,该对话框内至少有一个“选择背景色”按钮和一个静态文本框(或Edit框)以及确定、取消两个按钮。截图如下所示: 编写上述自定义对话框的处理函数:BOOL CALLBACK ColorDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) 增加响应菜单命令的代码 在“更改文本颜色”命令的响应中调用通用颜色对话框选择新的颜色。新选定的文本颜色用全局变量或静态变量保存,在主窗口刷新消息(WM_PAINT)处理中用该颜色显示原来输出的文本。 更改背景颜色命令响应中激活自定义对话框,对话框结束后,根据选择的颜色,结合SetClassLong和CreateSolidBrush函数,创建新的画刷,并替换原来主窗口类使用的画刷。 ( HBRUSH hbrBack = CreateSolidBrush(dwColor); SetClassLong(hWnd, GCL_HBRBACKGROUND, (LONG) hbrBack); ) 刷新窗口看显示结果是否符合要求。运行结果显示如下图: 单击鼠标左键,弹出自定义对话框,点击“请选择文字颜色”按钮,弹出通用对话框。 选择好文字颜色,点击“确定”按钮,文字颜色值显示在静态文本框中如下图所示: 点击确定后,文字颜色修改成功: 选择菜单中编辑下的”更改文字颜色”选项,弹出通用对话框: 选择好颜色后,选“确定”则文字颜色改变: 选择菜单中编辑下“更改背景颜色”选项,弹出自定义对话框: 输入颜色值: 按“确定”按钮后: 图形绘制函数的使用 研习EASYGDI示例程序。查看各个GDI绘制函数的使用方法。 在自己的工作目录中建立新工程。要求同2 增加对WM_PAINT消息的处理,在其中使用 Polyline PolyPolyline Polygon PolyPolygon 等函数,注意在WM_PAINT消息中对HDC的获取和释放使用的函数是BeginPaint和EndPaint函数。 按与Polyline相同的函数格式编写自定义的折线绘制函数,新函数命名为MyPolyline(用MoveToEx和LineTo实现),用该函数替换上一步代码(11)中的Polyline,应该获得同样的运行结果。 编写MyPolyPolyline和MyPolyPolygon,替换11中的库函数,获得同样的运行结果,以此加深对函数编写、指针方式参数传递的理解。 刷新窗口看显示结果是否符合要求。运行结果显示如下图: 在菜单下选择“编辑”下的Paint_polyline 选项,则图形如下所示: 在菜单下选择“编辑”下的Paint_polygon 选项,则图形如下所示 : 在菜单下选择“编辑”下的Paint_polypolygon 选项,则图形如下所示: 在菜单“更改”中选择MyPolyline,调用自定义Polyline函数显示如下图所示: 在菜单“更改”中选择MyPolypolyline,调用自定义Polypolyline函数显示如下图所示: 在菜单“更改”中选择MyPolypolygon,调用自定义Polypolygon函数显示如下图所示: 该函数没有调用成功. 定时器使用 在WM_CREATE消息中增加设置定时器的代码(用SetTimer函数): time

文档评论(0)

1亿VIP精品文档

相关文档