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

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

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






                  文件名称        文件大小                        说明 



                                                    (          )的 

                 MFC42。LIB       4200034  MFC42。DLL  941840 bytes   import 函数库。 



                                                     (           )的 

                 MFC42D。LIB      3003766  MFC42D。DLL  1393152 bytes   import 函数库。 



                 MFCS42。LIB      168364 



                 MFCS42D。LIB     169284 



                 MFCN42D。LIB     91134 



                 MFCD42D。LIB     486334 



                 MFCO42D。LIB     2173082 



                 。。。 



                 我们如何在联结器(link。exe ) 中设定选项,把这些函数库都联结起来? 稍后在 



                 HELLO。MAK  中可以一窥全貌。 



                 如果在Visual C++ 整合环境中工作,这些设定不劳你自己动手,整合环境会根据我们圈 



                 选的项目自动做出一个合适的makefile 。这些makefile  的内容看起来非常诘屈聱牙,事 



                 实上我们也不必太在意它,因为那是整合环境的工作。这一章我不打算依赖任何开发工 



                 具,一切自己来,你会在稍后看到一个简洁清爽的makefile 。 



348 


…………………………………………………………Page 411……………………………………………………………

                                                   第6章    MFC 程式的生死因果 



需要什么头文件? 



     SDK 程序只要包含WINDOWS。H 就好,所有API  的函数声明、消息定义、常数定义、 



     宏定义、都在WINDOWS。H 档中。除非程序另调用了操作系统提供的新模块(如 



     mDlg、ToolHelp 、DDEML。。。 ),才需要再各别包含对应的。H 档。 



     WINDOWS。H 过去是一个巨大文件,大约在5000 行上下。现在已拆分内容为数十个较小 



     的。H 档,再由WINDOWS。H 包含进来。也就是说它变成一个〃Master included file for 



     Windows applications〃 。 



     MFC 程序不这么单纯,下面是它常常需要面对的另外一些。H 档: 



    ■  

       STDAFX。H 这个文件用来做为Prepiled header file (请看稍后的方块说 



       明),其内只是包含其它的MFC 头文件。应用程序通常会准备自己的 



    ■  STDAFX。H,例如本章的Hello 程序就在STDAFX。H 中包含AFXWIN。H 。 



       AFXWIN。H 每一个Windows MFC 程序都必须包含它,因为它以及它所包含 

    ■  



      的文件声明了所有的MFC 类别。此档内含AFX。H ,后者又包含AFXVER_。H , 



      后者又包含AFXV_W32。H ,后者又包含WINDOWS。H          (啊呼,终于现身)。 



    ■  

       AFXEXT。H 凡使用工具栏、状态列之程序必须包含这个文件。 



    ■  

       AFXDLGS。H 凡使用通用型对话框(mon Dialog)之MFC 程序需包含此 



      档,其内部包含MDLG。H 。 



       AFXCMN。H 凡使用Windows 95 新增之通用型控制组件(mon Control ) 

    ■  



      之MFC 程序需包含此文件。 



       AFXCOLL。H 凡使用Collections Classes (用以处理数据结构如数组、串行) 

    ■  



      之程序必须包含此文件。 



    ■  

       AFXDLLX。H 凡MFC extension DLLs 均需包含此档。 



       AFXRES。H MFC 程序的RC 文件必须包含此档。MFC 对于标准资源(例如 

    ■  



      File、Edit 等菜单项目)的ID 都有默认值,定义于此文件中,例如: 



                                                                              349 


…………………………………………………………Page 412……………………………………………………………

                   第篇    湷觥 FC  程式設計 



                   // File mands 

                   #define ID_FILE_NEW         0xE100 

                   #define ID_FILE_OPEN        0xE101 

                   #define ID_FILE_CLOSE       0xE102 

                   #define ID_FILE_SAVE        0xE103 

                   #define ID_FILE_SAVE_AS     0xE104 

                   。。。 

                   // Edit mands 

                   #define ID_EDIT_COPY        0xE122 

                   #define ID_EDIT_CUT         0xE123 

                   。。。 



             这些菜单项目都有预设的说明文字(将出现在状态列中),但说明文字并不会事先定义 



             于此文件,AppWizard 为我们制作骨干程序时才把说明文字加到应用程序的RC 文件中。第 



              4章的骨干程序Scribble step0  的RC 档中就有这样的字符串表格: 



                   STRINGTABLE DISCARDABLE 

                   BEGIN 

                     ID_FILE_NEW      〃Create a new document〃 

                     ID_FILE_OPEN     〃Open an existing document〃 

                     ID_FILE_CLOSE    〃Close the active document〃 

                     ID_FILE_SAVE     〃Save the active document〃 

                     ID_FILE_SAVE_AS  〃Save the active document with a new name〃 

                     。。。 

                     ID_EDIT_COPY 〃Copy the selection and puts it on the Clipboard〃 

                     ID_EDIT_CUT  〃Cut the selection and puts it on the Clipboard〃 

                     。。。 

                   END 



             所有MFC 头文件均置于MSVCMFCINCLUDE  中。这些文件连同Windows SDK  的 



             包含档WINDOWS。H 、MDLG。H 、TOOLHELP。H 、DDEML。H。。。 每每在编译过程中 



             耗费大量的时间,因此你绝对有必要设定Prepiled header 。 



350 


…………………………………………………………Page 413……………………………………………………………

                                                第6章    MFC 程式的生死因果 



                            Prepiled Header 



          一个应用程序在发展过程中常需要不断地编译。Windows 程序包含的标准。H 文件 



          非常巨大但内容不变,编译器浪费在这上面的时间非常多。Prepiled header 就是 



          将。H 档第一次编译后的结果贮存起来,第二次再编译时就可以直接从磁盘中取出 



          来用。这种观念在Borland C/C++ 早已行之,Microsoft 这边则是一直到Visual C++ 



          1。0 才具备。 



简化的MFC 程序架构-以Hello MFC 为例 



        现在我们正式进入MFC 程序设计。由于Document/View 架构复杂,不适合初学者,所 



        以我先把它略去。这里所提的程序观念是一般的MFC Application Framework  的子集合。 



        本章程序名为Hello,执行时会在窗口中从天而降〃Hello; MFC〃 字样。Hello 是一个非 



        常简单而具代表性的程序,它的代表性在于: 



          ■  每一个MFC 程序都想从MFC  中衍生出适当的类别来用( 不然又何必以 



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