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

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

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





…………………………………………………………Page 394……………………………………………………………

                   第篇    湷觥 FC  程式設計 



                   因为CPoint 常常被用作MFC 类别成员函数的参数。 



                      ■  CTime 表现绝对时间, 提供许多成员函数, 包括取得目前时间( static 



                        GetCurrentTime)、将时间资料格式化、抽取特定字段(时、分、秒)等等。它 



                        对于+ 、…、+= 、…+ 等运算子都做了多载动作。 



                      ■  CTimeSpan  以秒数表现时间,通常用于计时码表。提供许多成员函数,包括把 



                        秒数转换为日、时、分、秒等等。 



                      ■  CString 用来处理字符串。支持标准的运算子如= 、+= 、《 和》 。 



               异常处理类别 (exception handling classes) 



                   所谓异常情况(exception ),是发生在你的程序执行时期的不正常情况,像是文件打不 



                   开、内存不足、写入失败等等等。我曾经在第2章最后面介绍过异常处理的观念及相 



                   关的MFC 类别,并在第4章「Exception Handling」一节介绍过一个简单的例子。与「异 



                   常处理」有关的MFC 类别一共有以下11 种: 



                                                   CException 

                                                    CException 



                                                   CArchiveException 

                                                    CArchiveException 



                                                     CDaoException 

                                                     CDaoException 



                                                     CDBException 

                                                      CDBException 



                                                     CFileException 

                                                      CFileException 



                                                   CMemoryException 

                                                    CMemoryException 



                                                 CNotSupportedException 

                                                 CNotSupportedException 



                                                     COleException 

                                                      COleException 



                                                 COleDispatchException 

                                                  COleDispatchException 



                                                  CResourceException 

                                                   CResourceException 



                                                     CUserException 

                                                     CUserException 



332 


…………………………………………………………Page 395……………………………………………………………

                                            第5章    總觀Application Framework  



Windows API classes 



      这是MFC 声名最著的一群类别。如果你去看看源代码,就会看到这些类别的成员函数 



      所对应的各个Windows API  函数。 



      ■  CWinThread 代表MFC 程序中的一个执行线程。自从3。0 版之后,所有的MFC 



        类别就都已经是thread…safe  了。SDK 程序中标准的消息循环已经被封装在此 



        一类别之中(你会在第6章看到我如何把这一部份开膛剖肚)。 



      ■  CWinApp 代表你的整个MFC 应用程序。此类别衍生自CWinThread;要知 



        道,任何32 位Windows 程序至少由一个执行线程构成。CWinApp  内含有用 



        的成员变量如m_szExeName, 放置执行档档名, 以及有用的成员函数如 



        ProcessShellmand,处理命令列选项。 



      ■  CWnd 所有窗口,不论是主框窗口、子框窗口、对话框、控制组件、view 视 



        窗,都有一个对应的C++ 类别,你可以想象「窗口handle 」和「C++ 对象」 



        结盟。这些C++ 类别统统衍生自CWnd,也就是说,凡衍生自CWnd 之类别才 



        能收到WM_  窗口消息(WM_MAND  除外)。 



        所谓「窗口handle 」和「C++ 对象」结盟,实际上是CWnd 对象有一个成员变 



        数m_hWnd ,就放着对应的窗口handle 。所以,只要你手上有一个CWnd 对象 



        或CWnd 对象指针,就可以轻易获得其窗口handle: 



        HWND hWnd = pWnd…》m_hWnd; 



      ■  CCmdTarget CWnd 的父类别。衍生自它, 类别才能够处理命令消息 



        WM_MAND。这个类别是消息映射以及命令消息绕行的大部份关键,我将 



        在第9章推敲这两大神秘技术。 



      ■  GDI 类别、DC 类别、Menu 类别。 



                                                                        333 


…………………………………………………………Page 396……………………………………………………………

               第篇    湷觥 FC  程式設計 



           Application framework classes 



                   这一部份最为人认知的便是Document/View ,这也是使MFC 跻身application framework 



                   的关键。Document/View  的观念是希望把资料的本体,和资料的显像分开处理。由于文 



                   件产生之际,必须动态生成Document/View/Frame 三种对象,所以又必须有所谓的 



                   Document Template 管理之。 



                   ■  CDocTemplate、CSingleDocTemplate、CMultiDocTemplate Document Template 扮演 



                     黏胶的角色,把Document 和View 和其Frame   (外框窗口)胶黏在一块儿。 



                   ■  CSingleDocTemplate 一次只支持一种文件类型,CMultiDocTemplate 可同时支持多 



                     种文件类型。注意,这和MDI 程序或SDI 程序无关,换句话说,MDI 程序 



                     也可以使用CSingleDocTemplate,SDI 程序也可以使用CMultiDocTemplate 。 



                   但是,逐渐地,MDI 这个字眼与它原来的意义有了一些出入(要知道,这个字眼早 



                   在SDK 时代即有了)。因此,你可能会看到有些书籍这么说:MDI 程序使用 



                   CMultiDocTemplate,SDI 程序使用CSingleDocTemplate 。 



                   ■  CDocument 当你为自己的程序由CDocument 衍生出一个子类别后,应该在其 



                     中加上成员变量,以容纳文件资料;并加上成员函数,负责修改文件内容以及 



                     读写档。读写文件由虚拟函数Serialize 负责。第8章的Scribble Step1 范例程序 



                     有极佳的示范。 



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