按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
第篇 欲善工事先利其器
#016 case CFileException::diskFull :
#017 Output(〃Disk Full〃);
#018 break;
#019 case CFileException::fileNotFound :
#020 Output(〃File Not Found〃);
#021 break;
#022 case CFileException::hardIO :
#023 Output(〃Hardware Error〃);
#024 break;
#025 case CFileException::lockViolation :
#026 Output(〃Attemp to lock region already locked〃);
#027 break;
#028 case CFileException::sharingViolation :
#029 Output(〃Sharing Violation load share。exe〃);
#030 break;
#031 case CFileException::tooManyOpenFiles :
#032 Output(〃Too Many Open Files〃);
#033 break;
#034 }
#035 }
让我简单地做一个说明。TRY 区块中的动作(本例为开档、写档、关档)如果在执行时
期有任何exception 发生,就会跳到CATCH 区块中执行。CATCH 的第一个参数是
exception type:如果是文件方面的exception,就是CFileException,如果是内存方面
的exception,那么就是CMemoryException。CATCH 的第二个参数是一个对象,经由其
资料成员m_cause,我们可以获知exception 的发生原因。这些原因(如accessDenied;
badPath; diskFull; FileNoteFound… )都定义于AFX。H 中。
256
…………………………………………………………Page 319……………………………………………………………
第4章 Visual C++ 整合性軟體開發環境
程序代码产生器:AppWizard
有一个Generic 范例程序,号称为「Windows 程序之母」,恐怕大家都是从那里跨出
Windows 程序设计的第一步。过去,当我要开始一个新的project ,我就把Generic 的所
有文件拷贝到新的子目录下,然后改变文件名,然后把makefile 中所有的〃GENERIC〃 字
串改为新project 名称字符串。我还必须改变C 文件中的窗口类别名称、窗口标题、菜单
名称、对话框名称;我必须改变RC 文件中的菜单、对话框等资源;我也得改变DEF 档
中的模块名称和DESCRIPTION 叙述句。这些琐碎的事做完,我才开始在DEF 、C、RC
档中添骨添肉。
数以打计的小步骤要做!!
有了AppWizard ,这些沉闷而令人生厌的琐碎工作都将自动化起来。不止如此,AppWizard
可以为我们做出一致化的骨干程序出来。以此种方式应付(我的意思是产生)标准接口
十分合适。
你可以从Visual C++ 整合环境中激活AppWizard 。第一次使用时机是当你要展开一个新
的project 之时。首先,为project 命名并为它找一个栖身场所(一个磁盘目录),然后
选择你想要的程序风格(例如SDI 或MDI )。问答题作完,劈哩啪啦呼噜哗啦,AppWizard
很快为你产生一个骨干程序。这是一个完整的,不需增减任何一行码就可编译执行的程
式,虽然它什么大事儿都没做,却保证令你印象深刻。外观(使用者接口)十分华丽,
Win32 程序员穷数星期之心力也不见得做得出这样漂亮丰富的接口来。
257
…………………………………………………………Page 320……………………………………………………………
第篇 欲善工事先利其器
东圈西点完成 MFC 程序骨干
选按【File/New】,并在【New】对话框中选择【Project】附页。然后再在其中选择MFC Application
(exe),于是准备进入AppWizard 建立〃Scribble〃 project。右边的磁盘目录和project 名称
亦需填妥。
258
…………………………………………………………Page 321……………………………………………………………
第4章 Visual C++ 整合性軟體開發環境
MFC AppWizard 步骤一,选择SDI 或MDI 或Dialog…based 程序风格。预设情况是MDI。
MFC AppWizard 步骤二,选择是否需要数据库支持。预设情况是None。
259
…………………………………………………………Page 322……………………………………………………………
第篇 欲善工事先利其器
MFC AppWizard 步骤三,选择是否需要pound document 和ActiveX 支持。预设情况下支持ActiveX
Controls,本例为求简化,将它关闭。
注意,在VC++ 4。x 版中此处为OLE Automation 和OLE controls。
MFC AppWizard 步骤四,选择使用者接口。预设情况下【Context Sensitive Help】未设立。
260
…………………………………………………………Page 323……………………………………………………………
第4章 Visual C++ 整合性軟體開發環境
MFC AppWizard 步骤四的【Advanced】带出【Advanced Options】对话框:
把上图修改为下面这个样子。这些修改对程序代码带来的变化,将在第7章中说明。
261
…………………………………………………………Page 324……………………………………………………………
第篇 欲善工事先利其器
MFC AppWizard 【Advanced Options】的另一附页。其中最上面的一个核示钮【Use split window】
预设是关闭状态。如果要制作分裂窗口(如本书第11 章),把它打开就是了。
MFC AppWizard 步骤五,提供另一些选项,询问要不要为你的源代码产生一些说明文字。并询问你
希望使用的MFC 版本(动态联结版或静态联结版)。
262
…………………………………………………………Page 325……………………………………………………………
第4章 Visual C++ 整合性軟體開發環境
MFC AppWizard 步骤六(最后一步),允许你更改档名或类别名称。完成后按下【Finish】
MFC AppWizard 获得的清单(包括文件和类别):
263
…………………………………………………………Page 326……………………………………………………………
第篇 欲善工事先利其器
一行程序代码都还没写,就获得了这么多文件。你可以选择【Win32 Debug】或【Win32 Release】来
建造(building)程序,获得的二进制文件将放在不同的