编程实习心得.doc_第1页
编程实习心得.doc_第2页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

心得体会/实习心得体会 编程实习心得 编程实习心得来公司实习已一个多月了,在这段时间里,我主要学习evc下的mfc编程,下面主要谈谈学习的经验以及心得体会。在编程过程中遇到了较多的问题,解决问题的过程是漫长而艰苦的,然而在问题得到解决的一刹那是很快乐的。在此举出数个例子与大家分享:1. 音乐播放滚动条的绘制在开始绘制滚动条的时候,为了简便以及缩短开发时间,我打算直接从vc默认的标准滚动条cscrollbar派生,然后对其进行所有者自绘(owrner draw),将图片贴上去,然而cscrollbar并不如cbutton般好绘制,在经过近一天的尝试后始终无果,很是烦躁,后来在听从陈曦老师的建议后,决定还是从cstatic派生自绘,然后再加上一些鼠标、键盘的相应消息响应处理函数以实现滚动条的功能。在确定这一思路后,我便开始着手代码的实现:首先实现了一个图片绘制函数loadbitmaptoscroll,用于将滚动条的滑块、上下箭头以及滚动条底色画到确定的区域。由于滑块的位置会不断的发生变化,因此将不能简单地将滚动条底色先画好,然后将滑块放到某一固定位置,因此我定义了一个类成员变量nthumbtop用于确定滑块顶部到滚动条顶部的距离并截取了一小块滚动条底色将其填充到滑块到两侧箭头的所有区域以实现滚动条的变化。然后捕获wm_paint消息调用loadbitmaptoscroll使对窗口进行重绘时将滚动条显示出来。这样当创建一个滚动条对象的时候,便能够将其简单地显示出来了。要响应用户的外部输入,则只需要捕获消息即可,比如wm_lbuttondown便可以判断是否有鼠标左键按下并可通过鼠标位置判断点击的是向上的箭头、向下的箭头还是滑块。另外由于滚动条是不独立存在的,它一般会与一个窗口做伴,比如列表以控制其显示内容或区域。因此,我在滚动条类中定义了一个plist指针变量指向滚动条要控制的窗口对象,在鼠标点击滚动条的上下箭头时,通过向plist指向的对象发送wm_vscroll消息以控制窗口区域的上翻或下翻。如此,一个具有美观界面及基本功能的滚动条大体上已经实现了。整个滚动条的绘制耗费了将近两天时间,尽管时间较长,但还是受益匪浅,整个绘制过程让我明白了:“一切皆有可能”,没有什么是不能实现的,只要它在现实生活中存在,很多东西表面上看起来很复杂,就象这个自定义的滚动条,只要将其功能进行分解然后一步步实现便可以了。2. 透明文字的实现由于嵌入式系统的特殊性,evc并不具备vc的所有功能,透明文字的输出就是其中一例。vc下只要简单地通过setbkmode(transparent),然后在控件窗口区域内获取设备上下文dc,通过该dc调用drawtext即可将想要显示的文字在给定位置显示,然而evc在cstatic、clistbox等一般控件下设置背景为透明色是不可行的,在纠缠了数个小时后,发现evc虽然不能简单地设置背景模式为透明,却可以设置背景颜色为一给定的颜色,最后还是采用“先截取背景颜色,然后绘制文字,最后以原背景色设置为背景色”的方式解决。即:dc.setbkcolor( colorref ); /设置背景颜色dc.settextcolor(colorref ); /设置字体颜色dc.drawtext( ); / 绘制文字3. 模块功能的设计在软件设计的过程中,我深刻地体会到:一个模块对扩展是开放的,对修改是关闭的。在刚开始编程的时候,只是简单地将一些应该实现的功能予以实现,以致于后来在得知ui有所变化时又得重新编写代码浪费了较多时间,因此在进行软件设计的时候必须考虑到软件需求是一直在变更的。同时应当优先使用聚合,而不是继承,否则就会出现类层次很深的问题,从而造成所谓的类爆炸。比如:在我进行各类自定义控件的设计过程中,将一些类剥离开来,在使用的时候直接定义各个类对象便可,从而避免了类层次过深的现象。总而言之,来公司的这个月,是我最充实的一个月,在这里学会的不仅仅是evc的mfc编程技能,更重要的是我学

温馨提示

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

评论

0/150

提交评论