面向对象编程_2016.4.22探究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象编程技术 实验三实验报告 班 级:电子 2 班 学 号:201400800164 姓 名: 赵保丰 时 间:2016-4-22 目 录 1 实验要求 1 2 实验过程及结果 1 2.1 创建工程 1 2.2 程序流程和数据模型分析 1 2.3 问题及解决方案 1 3 实验总结 1 附录 关键代码 1 实验要求 调试示例程序Childwin,查找程序中的UnderstandCallStack函数,跟踪调试,以此理解调用栈 改进ChildWin示例程序,在子窗口内显示出窗口特定信息(窗口ID号);尝试在每个子窗口中绘制特定颜色的矩形 在子窗口的窗口过程函数的刷新处理消息中增添处理代码; 用GetWindowLong函数取出子窗口ID; 根据子窗口ID设定子窗口内需要显示的信息(使用wsprintf函数组织待显示的字符串) 尝试在子窗口中绘制特定颜色的矩形(练习使用Rectangle函数) 跟踪消息传递过程 在Childwin的主窗口过程函数的WM_CREATE、WM_PAINT、WM_COMMAND、WM_LBUTTONDOWN处设置断点 在子窗口的WM_CREATE、WM_PAINT、WM_CHILDWIN、WM_LBUTTONDOWN处设置断点 运行程序,查看各断点的响应过程,以此理解消息传递的次序 设计、实现一个软键盘 用子窗口实现一个软键盘(在窗口的客户区用子窗口绘制一个仿真的键盘),鼠标点击每个子窗口,可输入不同的字符。将输入的字符显示到屏幕上。 在自己的工作目录中建立新工程用于控件测试〔可以将Easywin工程的easywin.c拷贝到新工程的目录中,修改文件名为ctltest.cpp(后缀名改为.cpp),编译、链接并使程序正常工作(包括修正编译错误)〕。 * 用Button完成4*所要求的软键盘实现。比较与原有实现的不同之处。 创建各种类型的控件子窗口,包括static、edit、listbox、combobox、button、scrollbar等;在主窗口的窗口过程函数中增加相应的消息处理实现主窗口与子窗口的通信(可尝试设置控件的标题/内容,获取控件的标题/内容以及在控件有点击等操作时在主窗口给出提示)。 同步骤5,新建用于资源测试的工程。 增加新的资源:光标、图标,并正确显示 用资源编辑器编辑一个光标(彩色),注意删除资源中不需要的image类型,否则显示光标可能不正确。 为光标设定热点(hot spot) 用资源编辑器编辑一个图标 修改注册窗口类的代码,使程序能正常使用自定义的光标和图标 参照课本(或MSDN)中的DrawIcon函数,在WM_PAINT消息中增加处理,在窗口客户区中显示自定义的光标及图标。 创建一个另外光标供后续实验步骤使用 增加菜单 菜单中建立一个菜单项命令以修改窗口使用的光标,可命名为“ChangeCursor”,对应的ID假设为ID_CHANGECURSOR 修改注册窗口类的代码,使程序运行时能正确载入菜单 换一种方式,通过修改创建窗口的代码,使菜单能正确载入 增加菜单消息响应代码 增加WM_COMMAND的消息处理 参照第五章菜单示例代码中的处理方式,响应菜单命令 对ID_CHANGECURSOR命令的响应为:改变窗口使用的光标,可以使用SetClassLong (hwnd, GCL_HCURSOR, (LONG)LoadCursor((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDC_CURSOR2) ) ); 处理鼠标右键,增加快捷菜单处理 右键发出的菜单命令同样是通过WM_COMMAND消息响应的,增加快捷菜单之后,程序应该能通过主菜单或快捷菜单两种方式发出同样的命令 增加菜单快捷键的定义 修改资源,增加快捷键,使快捷键对应到某一菜单命令 修改消息循环,使程序能够处理快捷菜单 测试快捷键的按键响应情况 实验过程及结果 创建工程 点击文件,选择新建项目,选择win32项目,改名称和解决方案名字。并进行设置成空项目,将示例程序childwin.c改为childwin.cpp,拷贝到所建工程目录,添加为源文件。 问题及解决方案 (1):调试程序,将wcMain.hbrBackground = GetStockObject (WHITE_BRUSH); wcChild.hbrBackground = GetStockObject (LTGRAY_BRUSH);这两句代码的等号后面加(HBRUSH)强制涂刷。在项目——属性——字符集将Unicode字符集改为多字节字符集,编译,成功出现子窗口程序。 (2):以子窗口程序为基础,写出软键盘程序。

文档评论(0)

1112111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档