《深入浅出MFC》观后有感

《深入浅出MFC》观后有感    《深入浅出MFC》观后有感本文原创,如需转载,请注明出处!     好几年前我曾经买过这本书,知道它是本好书,在匆匆走马观看一遍后,便将它束之高阁,后来有友人借之,不想几经辗转,最终不知我的这本好书花落谁家了。这段时间有空,得知一位友人也买了此书,便借来再读。再读的同时,回想这几年使用MFC的经历,顿觉获益良多,深受启发,遂成此文。          翻开此书,到内容简介后面一页

大家好,又见面了,我是你们的朋友全栈君。

    《深入浅出MFC》观后有感

本文原创,如需转载,请注明出处!  

     好几年前我曾经买过这本书,知道它是本好书,在匆匆走马观看一遍后,便将它束之高阁,后来有友人借之,不想几经辗转,最终不知我的这本好书花落谁家了。这段时间有空,得知一位友人也买了此书,便借来再读。再读的同时,回想这几年使用MFC的经历,顿觉获益良多,深受启发,遂成此文。       

     翻开此书,到内容简介后面一页,一个红的印章,上书“山高月小 水落石出”。坦言,我在第一次看到这本书时,并不理解此八个字与此书的关系。在读完此书两遍后,才明白此书真的是带我们去高山寻宝,上九天揽月,最终MFC的神奇奥秘在我们面前水落石出。作者简介让我们了解到侯俊杰老师的兴趣、品格和技术人特有的恬静平和的心态。每遇心静浮躁,我便想起侯老师的这几句自我介绍,以为安抚,以为榜样。后面紧接是读者来函、各次印刷的感言和书序,可见此书读者众多,发行量很高,来自各个国家和地区的读者对此书也赞誉颇多,让人一眼就明了这是本不可多得的好书。       

     我觉得本书的第一点亮点是第0章。此章是本书的导读,介绍了适合阅读本书的读者、读者应需要的软硬件条件和本书主要的内容,其中对适合的读者范围,读者应具有何种技术基础描述甚细,不似许多书就是内容简介后面加一句“适于广大大专、本科学生和学习研究MFC的教师、技术人员”之类的话。这样的话太粗略了,一方面没有准确的读者定位,另一方面也好像在说后面的内容是泛泛而谈,是适于任何人的“粗、大、空”而已。所以我认为第0章为本书开了个好头,精彩之至呀。       

     然后是本书的主要内容,分为四篇。从Windows程序设计的基本概念入手,联系C++语言的重要性质在MFC中的应用,不求对MFC面面俱到的讲述,而是抓住其主要结构,阐述其设计思想,全书内容丰富,结构合理,前后呼应。读者在阅读本书的同时,真感觉是一种享受。       

     第一篇是勿在浮砂筑高台。对于刚刚学习C++,刚刚从Turbo C那样的环境下过来的初学者,此章尤为重要,这一点我深有感触。我接触程序设计是在2002年以后,刚刚学习C语言,然后学习了C++语言,那时用的是Turbo C。学习了这些语言之后,就在想,怎么样才能用C、C++写出漂亮的窗口。当时,许多同学在学习了C语言之后,迅速转到了VB、Dephi等快速开发工具上去了,因为这些开发工具快捷的开发能力,容易入门和掌握的特点,对他们吸引很大。但我笃信C、C++,是它们忠实的拥趸。但怎样才能用C、C++进行Windows程序开发呢,这是当时我面临的问题。好在后来我发现了大师Charles Petzold的《Windows程序设计》,如获至宝,这本书为我指明了Windows程序设计的道路。运用此书介绍的Windows程序设计的方法和概念,我完成了我的毕业设计:用C语言写了一个基于Windows窗口的网络通信程序。然而,这样原始的Windows程序设计的方法毕竟不是长远之计,随后自然是要使用MFC,学习MFC的道路也是曲折的,首先当然是学习C++,然后看了一大堆的VC++程序设计之类的书,书上的操作介绍了很多,仿佛是使用指南。对于为什么这样操作,为什么如此使用,我是一头雾水。“只用一样东西,不明白它的道理,实在不高明”。终于,侯老师的这本书成了我的指路明灯,第一篇的第一章就把我前面的SDK方式的Windows程序设计观念联系起来了,对Windows系统的一些内核操作也有了初步的概念。第二章则让我复习了学过的C++语言,同时加深了对其应用的理解。MFC是用C++语言构建起来的,C++的性质与MFC密切相关,明白这些性质与MFC的联系是理解MFC的关键,如多态,如虚函数,如this指针。这一章可以说是使对C++的知与行进行了统一。第三章对MFC的关键技术进行模拟。此章的目的不是让我们也去设计一个MFC,设计一个Framework,而是通过仿真的方式,了解MFC的设计思想,了解C++的性质是如何浸入到MFC中的。个人觉得此章是全书的关键,也是第二个亮点。深入理解此章的内容,在看后面的内容时,可以达到事半功倍的效果。透过此章,我们可以抓住MFC的主要技术脉络。       

     第二篇是欲善工事先利其器。此篇只有一章,主要介绍VC++集成开发环境的使用,这就有点像那些指南性的书籍了,不过这并不是本书重点,侯老师也简要带过。此章也从另一方面说明了VC++到底是不是一门语言。准确地说,它不是一门语言,就此软件本身,它只是一个开发工具,只不过里面集成了各种各样的开发工具,使程序员在此环境中就能实现所有的开发过程,达到开发过程的“集成”。但从VC++提供了MFC这样的Framework来说,似乎又有点像语言,我想微软从MFC发展到现在的.net,从通过MFC的一些并非语言本身的宏来实现Framework的架构到.net包含的语言中内嵌Framework的实现,这个过程实际上也是语言与开发环境在不断融合的过程。       

     第三篇是浅出MFC程序设计。此篇内的三章内容,描述了MFC的整个架构,并与前面第一章的内容遥相呼应,不断把MFC对程序的实现过程与SDK的方式进行比较。CWinApp取代了WinMain,隐藏了程序的入口点,引爆了程序的执行,推动了消息的运转;CFrameWnd取代了WndProc,向Windows注册了所需的窗口类,承接了对消息的接收,并与MFC的消息处理机制结合到一起。本篇的最后一章是后面内容的开头,通过分析MFC的骨干程序结构,奠定了深入分析MFC程序的基础。       

     第四篇是深入MFC程序设计。此篇是对MFC的深入探讨和对一些高级应用的讲述,以前一篇最后给出的Scribble程序为例,详细论述了MFC的运行时类型识别、动态创建、串行化和消息映射与命令传递的实现机制。我觉得其中最值得以为榜样的是讲解程序的方法。对Scribble程序,侯老师从对其的数据结构设计开始,与MFC的结构紧密结合,追根究底,在读者面前展现了一幅幅Scribble程序的每个侧面。程序虽不复杂,道理亦浅显,完整地分析展现却不是件容易的事,侯老师图文并貌,生动有趣地引导读者完成了对MFC架构的理解。最后的多线程程序,定制AppWizard,使用组件和ActiveX,则为读者的进一步进阶打下了基础。       

     我觉得透过这本书,最值得学习的是侯老师深入仔细的钻研精神。侯老师不厌其烦,把MFC的整体架构全部展现在我们的面前,深入MFC内部,把它的代码分析给我们看。这种实证精神,我觉得是大陆广大的程序学习人员、研究人员开发人员所缺乏的。这些年大陆所出版的各式各样的VC++不可谓不多,但真正能达到像侯老师这样,深入地分析MFC的内部情况,而不是只讲述操作过程的书,真的没有几本。期望大陆能多出这样的好书,也期望侯老师能笔耕不辍,再出佳品。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151149.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 卷积神经网络超详细介绍

    卷积神经网络超详细介绍1、卷积神经网络的概念2、发展过程3、如何利用CNN实现图像识别的任务4、CNN的特征5、CNN的求解6、卷积神经网络注意事项7、CNN发展综合介绍8、LeNet-5结构分析9、AlexNet10、ZFNet10.1意义10.2实现方法10.3训练细节10.4卷积网络可视化10.6总结11、VGGNet11.1结构11.2网络特点:1…

  • PHP SOCKET编程

    PHP SOCKET编程

  • 游戏编程编程学习推荐

    游戏编程编程学习推荐一下资料是从网上搜集的推荐,非本人原创,作为自己学习使用不要单单看批处理了,学powershell,.net驱动,功能强大我觉得shell脚本用的挺多的啊,bat还是很少用到.不过经常接触到,所以我

  • TransactionScope使用说明

    TransactionScope使用说明参考MSDN:http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope.aspx转载自:http://www.cnblogs.com/blsong/archive/2010/08/13/1798987.html感谢原作者。TransactionScope是.NetFramework

  • Pytest(6)重复运行用例pytest-repeat「建议收藏」

    Pytest(6)重复运行用例pytest-repeat「建议收藏」前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

  • 常用建模方法_建模方法有哪几种

    常用建模方法_建模方法有哪几种数据建模世界上物品种类有千万种,各种信息更是层出不穷,每种信息都有各自独特的格式和表达方式,如何对信息进行描述,按照一定的方式进行转化,使之形成适合存储的数据格式,称之为建模。常用的有实体建模法,维度建模法,范式建模法三种数据建模方法,不管哪种数据建模方法都是使信息结构清晰、易于存储和读取。(1)实体建模法 实体是现实世界中存在的事物或发生的事件,是现实世界中任何可识别、可区分的事物。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号