学MFC有感

  • 时间:2019/2/20——2019/4/15
  • 事件:学习MFC
  • 人物:本人
  • 起因:因为工作的原因,需要用到MFC,怎么办呢?学呗。刚进公司做实习生,因为之前也没有使用过MFC,做一些应用程序也都是使用的Qt,甚至于刚开始我连VS都不会用,因为专业的原因,大学时所学的知识偏一点硬件方面,就做像在单片机上点灯、让蜂鸣器发出声音之类的工作,再大一点就给板子移植系统这样的。不会VS怎么办呢?学呗。学习使我快乐。
  • 经过:在刚开始学的时候,我建议可以看看鸡啄米大佬写的“VS2010/MFC编程入门教程之目录和总结”,可以说我入门MFC和VS都是用的该教程,里面有很多简单的实例,非常实用。就这个教程我看了一周还是两周,忘了,期间我的主管,也就是我的实习生老师给我安排了一个类似于字幕滚动的任务。刚开始的时候我真的是不知道怎么做,我连怎么创建工程都不知道,要用MFC里的单文档、多文档、基于对话框选哪一个一脸迷茫。之后我看了一些资料,单文档就相当于我们在Windows下使用的记事本之类的应用,基于对话框就像扫雷之类的应用,至于多文档现在的我还没有涉及到。然后我创建了基于对话框的程序,程序要求如下:
  • 字幕滚动(下向上) 调整滚动速度 内容:手动输入

我当时就列了个提纲:

实现:1、实现内容的输入,在字幕上显示
	 2、字幕移动
	 3、字幕移动速度控制

刚开始的时候,我使用的是创建Static Text控件来存放字幕,然后控制控件移动打到字幕滚动的效果,至于多个字幕就是vector容器存储,当字幕移出窗口时,做清理工作。当老师来检查时,发现了一些bug,做大的问题就是当很多控件移动太快就会出现闪烁问题,然后老师提议使用双缓冲绘图来解决该问题。当时对于我来说可以说是一场工业革命了,因为两种实现方法完全不同,而且也没接触过CDC绘图,也不知道双缓冲如何实现,当然因为有各种厉害的前辈在网上分享了他们的所得,我也花了时间去学习。之后我就重新写程序,使用双缓冲绘图完成了任务。之后就开始接触公司的小项目,我最开始接触的是一个叫做ml的类似文件管理器的应用,当然只看到的运行结果和里面的一些操作,也在自己的电脑上配好了环境能够运行起来,源码还没有接触到,当然以我现在的水平看起来可能看不懂。之后我就在看一个简单一点的项目代码,这是一个关于XML文件转换工具的项目。说实话,刚开始看得时候一脸茫然,完全不知道从何入手,因为头文件、源文件啊实在太多了一点,而且该项目还分为了三个模块:
1、数据库模块
2、界面可操作(终端)模块
3、提供给其他系统接口模块
我刚开始就从界面也就是Dlg文件开始看,对界面上的控件的事件处理函数进行深入探讨,我发现很多都看不懂,因为在这些函数里面往往调用了其他类的函数,就这样跳过去又跳走的看代码,之后都不知道跳到哪儿去了,就这样看了几天还是有点懵,然后就叫全哥在我的电脑上配置环境,让程序跑起来,这样一点点调试,对这个项目的理解也一点点加深。然后我觉得这样看还是有点懵,就从整体架构开始看,了解他总体需要实现什么功能,怎么实现的之后再看,也就是分析每一个类的功能及作用,至于这些功能如何实现的,不急嘛。也因为公司前辈编程规范的原因,看着函数名就能大概知道他要实现什么功能,就这样开始了解类功能之旅。就这样整个项目看了一个多月了吧,觉得自己掌握了60%吧,一些功能的实现还是没有看懂,也可能是因为引用了很多未知函数吧(api)。

  • 结果:从刚进公司到现在快两个月了,感觉自己还是学到了很多东西,加油吧少年,奋斗的青春最美丽。
  • 很喜欢一句在小视频中看到的话:你只管努力,其他的交给天意。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值