友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

深入浅出MFC第2版(PDF格式)-第88章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




                    { 

                       LONG  x; 

                       LONG  y; 

                    } POINT; *PPOINT; NEAR *NPPOINT; FAR *LPPOINT; 



                   typedef struct tagSIZE 

                    { 

                       LONG        cx; 

                       LONG        cy; 

                    } SIZE; *PSIZE; *LPSIZE; 



340 


…………………………………………………………Page 403……………………………………………………………

第5章    總觀Application Framework  



                                       341 


…………………………………………………………Page 404……………………………………………………………

                第篇    湷觥 FC  程式設計 



342 


…………………………………………………………Page 405……………………………………………………………

                                     第6章    MFC 程式的生死因果 



第6章 MFC 程序设计导论 



           MFC 程序的生死因果 



            理想如果不向实际做点妥协,理想就会归于尘土。 



      中华民国还得十次革命才得建立,对象导向怎能把一切传统都抛开。 



以传统的C/SDK 撰写Windows 程序,最大的好处是可以清楚看见整个程序的来龙去脉 



和消息动向,然而这些重要的动线在MFC 应用程序中却隐晦不明,因为它们被 



Application Framework 包起来了。这一章主要目的除了解释MFC 应用程序的长像,也 



要从MFC 源代码中检验出一个Windows 程序原本该有的程序进入点(WinMain)、视 



窗类别注册(RegisterClass )、窗口产生(CreateWindow)、消息循环(Message Loop )、 



窗口函数(Window Procedure )等等动作,抽丝剥茧彻底了解一个MFC 程序的诞生与 



结束,以及生命过程。 



为什么要安排这一章?了解MFC  内部构造是必要的吗?看电视需要知道映射管的原理 



吗?开汽车需要知道传动轴与变速箱的原理吗?学习MFC 不就是要一举超越烦琐的 



Windows API ?啊,厂商(不管是哪一家)广告给我们的印象就是,藉由可视化的工具我 



们可以一步登天,基本上这个论点正确,只是有个但书:你得学会操控Application 



Framework 。 



想象你拥有一部保时捷,风驰电挚风光得很,但是引擎盖打开来全傻了眼。如果你懂汽 



车内部运作原理,那么至少开车时「脚不要老是含着离合器,以免来令片磨损」这个道 



理背后的原理你就懂了,「踩煞车时绝不可以同时踩离合器,以免失去引擎煞车力」这 



个道理背后的原理你也懂了,甚至你的保时捷要保养维修时或也可以不假外力自己来。 



                                                          343 


…………………………………………………………Page 406……………………………………………………………

                第篇    湷觥 FC  程式設計 



                不要把自己想象成这场游戏中的后座车主,事实上作为这本技术书籍的读者的你,应该 



                是车厂师傅。 



                好,这个比喻不见得面面俱到,但起码你知道了自己的身份。 



                题外话:我的朋友曾铭源(现在纽约工作)写信给我说:『最近项目的压力大,人员纷 



                纷离职。接连一个多礼拜,天天有人上门面谈。人事部门不知从哪里找来这些阿哥,号 



                称有三年的SDK/MFC 经验,结果对起话来是鸡同鸭讲,WinMain 和Windows Procedure 



                都搞不清楚。问他什么是message handler ?只会在ClassWizard 上click、click、click !!! 拜 



                Wizard 之赐,人力市场上多出了好几倍的VC/MFC 程序员,但这些「Wizard 通」我们 



                可不敢要』。 



               以raw Windows API 开发程序,学习的 



               路径是单纯的,条理分明的,你一定先                          》 



               从程序进入点开始,然后产生窗口类                            various Windows APIs 。。。 



               别,然后产生窗口,然后取得消息,然 

                                                     Window Procedure 

               后分辨消息,然后决定如何处理消息。 



               虽然动作繁琐,学习却容易。 

                                               GetMessage/DispatchMessage 



                                          CreateWindow 



                                    RegisterClass 



                               WinMain 



344 


…………………………………………………………Page 407……………………………………………………………

                                                                                第6章    MFC 程式的生死因果 



                                    开发程序,一开始很快速,因为                          》 

                             以MFC  



                             开发工具会为你产生一个骨干程序,一 

                                                                         CObject 

                                                                   近 

                             般该有的各种接口一应俱全。但是MFC                            CCmdTarget 

                                                                   乎          CWinThread 

                             的学习曲线十分陡峭,程序员从骨干程 

                                                                   垂            CWinApp 

                             式出发一直到有能力修改程序代码以符合                    直               CMyWinApp 

                                                                   的          CWnd 

                             个人的需要,是一段不易攀登的峭壁。                                  CView 

                                                                   学 

                                                                   习               CMyView 

                                                                   曲            CFrameWnd 

                                             一个 MFC 骨干程序           线               CMyFrameWnd 



                                                                              CDocument 



                                             Visual C++ 各种工具之使用                 CMyDoc 



                                                                                            》 



                                                                                              Dynamic Creation; 

                                                                                              Serialization。 

                                                                                          Message Mapping;  

                              如果我们了解 Windows程序的基本运作原理                                     Message Routing。 



                              ;并了解 MFC 如何把这些基础动作整合起来                               Windows APIs  

                                                                                   包装在MFC 各类别中 

                              ;我们就能够使 MFC 学习曲线的陡峭程度缓                         Window Procedure  由 MFC 提供 



                              和下来。因此能够迅速接受MFC,进而使用                      GetMessage/DispatchMessage 

                                                                        包裝在 CWinApp::Run  中 

                              MFC。呵,一条似远实近的道路! 

                                                                  CreateWindow 应该在 CWinApp::InitInstance 中调用 



                                                             RegisterClass         AfxWinInit 中 

                                                                          包装于 



                                         MFC 骨干程序  WinMain 由 MFC 提供 



                                          Visual C++ 各种工具之使用 



                                                                                                            345 



一个 


…………………………………………………………Page 408……………………………………………………………

              第篇    湷觥 FC  程式設計 



              我希望你了解,本书之所以在各个主题中不厌其烦地挖MFC  内部动作,解释骨干程序 



              的每一条指令,每一个环节,是为了让你踏实地接受MFC ,进而有能力役使MFC 。你 



              以为这是一条远路?呵呵,似远实近! 



        不二法门:熟记MFC 类别的阶层架构 



              MFC 在1。0 版时期的诉求是「一组将SDK API 包装得更好用的类别库」,从2。0 版 



              开始更进一步诉求是一个「Application Framework 」,拥有重要的Document…View 架构; 



              随后又在更新版本上增加了OLE 架构、DAO 架构。。。。为了让你有一个最轻松的起点, 



    
返回目录 上一页 下一页 回到顶部 0 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!