2014年3月12日

《转》MFC六大关键技术之(五)(六)——消息映射与命令传递

摘要: 题外话:刚开始学视窗程序设计的时候,我就打印了一本Windows消息详解,里面列举了各种已定义消息的意义和作用,共10多页,在编程的时候翻翻,有时觉得很受用。我发觉很多编程的朋友,虽然每天都面对消息,却很少关注它。C++程序员有一个通病,很想写“自己”的程序,即每一行代码都想自己写出来。如果用了一些库,总希望能完全理解库里的类或函数是怎么一回事,否则就“不踏实”。对于消息,许多朋友只关心常用的几个,对其余的漠不关心。其实,Windows中有很多不常用的消息却很有用,程序员可能通过响应这些消息实现更简捷的编程。说到消息,在MFC中,“最熟悉的神秘”可算是消息映射,那是我们刚开始接触MFC时就要面 阅读全文

posted @ 2014-03-12 20:16 Sam.Richard 阅读(278) 评论(0) 推荐(0) 编辑

《转》MFC六大关键技术之(四)——永久保存(串行化)

摘要: 先用一句话来说明永久保存的重要:弄懂它以后,你就越来越像个程序员了!如果我们的程序不需要永久保存,那几乎可以肯定是一个小玩儿。那怕我们的记事本、画图等小程序,也需要保存才有真正的意义。对于MFC的很多地方我不甚满意,总觉得它喜欢拿一组低能而神秘的宏来故弄玄虚,但对于它的连续存储(serialize)机制,却是我十分钟爱的地方。在此,可让大家感受到面向对象的幸福。MFC的连续存储(serialize)机制俗称串行化。“在你的程序中尽管有着各种各样的数据,serialize机制会象流水一样按顺序存储到单一的文件中,而又能按顺序地取出,变成各种不同的对象数据。”不知我在说上面这一句话的时候,大家有什 阅读全文

posted @ 2014-03-12 20:15 Sam.Richard 阅读(240) 评论(0) 推荐(0) 编辑

《转》MFC六大关键技术之(三)——动态创建

摘要: 动态创建就是运行时创建指定类的对象,在MFC中大量使用。如框架窗口对象、视对象,还有文档对象都需要由文档模板类对象来动态的创建。我觉得这是每个MFC的学习者很希望理解的问题。初次接触MFC的时候,很容易有这样的迷惘。MFC的几大类不用我们设计也就罢了,但最疑惑的是不用我们实例化对象。本来最直观的理解就是,我们需要框架的时候,亲手写上CFrameWnd myFrame;需要视的时候,亲自打上CView myView;……但MFC不给我们这个机会,致使我们错觉窗口没有实例化就弹出来了!就象画了张电视机的电路图就可以看电视一样令人难以置信。但大伙想了一下,可能会一拍脑门,认为简单不过:MFC自动帮我 阅读全文

posted @ 2014-03-12 20:14 Sam.Richard 阅读(272) 评论(0) 推荐(0) 编辑

《转》MFC六大关键技术之(二)——运行时类信息(RTTI)

摘要: 运行时类信息(RTTI)即是程序执行过程中知道某个对象属于某个类,我们平时用C++编程接触的RTTI一般是编译器的RTTI,即是在新版本的VC++编译器里面选用“使能RTTI”,然后载入typeinfo.h文件,就可以使用一个叫typeid()的运算子,它的地位与在C++编程中的sizeof()运算子类似的地方(包含一个头文件,然后就有一个熟悉好用的函数)。typdid()关键的地方是可以接受两个类型的参数:一个是类名称,一个是对象指针。所以我们判别一个对象是否属于某个类就可以象下面那样:if(typeid (ClassName)== typeid(*ObjectName)){((ClassN 阅读全文

posted @ 2014-03-12 20:13 Sam.Richard 阅读(514) 评论(0) 推荐(0) 编辑

《转》MFC六大关键技术之(一)—— 初始化过程

摘要: 题外话:我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗?不行!!!如果这样,我宁愿永远不选择MFC!在学电脑之前,本人学习的东西大都与艺术不无关系,小学时参加过全国书画比赛获银奖。儿时的爱好就是在一张纸上随心所欲地画画!MFC“黑箱”就象一幅硕大的抽象画(抽象到你不能理解),它用铅笔勾画好线条,然后请你填颜色。我们怎么能忍受“黑箱”作业?我们选择C++,就是因为它够自由 阅读全文

posted @ 2014-03-12 20:12 Sam.Richard 阅读(295) 评论(0) 推荐(0) 编辑

导航