om window
RUNTIME_CLASS(CHelloMFCView));
AddDocTemplate(pDocTemplate);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The one and only window has been initialized, so show and update it.
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
从上面的代码可以看出,AppWizard 自动生成的InitInstance()函数主要完成下述功能。
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·21·
? 从.ini 文件或Windows 注册表中获取一些标准的文件选项,包括取得最近使用的文件
名称,以便在应用程序的文件菜单中列出,供用户快速打开最近编辑的文件。
? 该函数的中心工作是构造文档模板类(单文档或多文档模板类)的对象,指明了该文
档模板对象对应的文档类、框架窗口类和视图类。这使得以后可以据此构造文档类、
边框窗口类和视图类的对象及创建新窗口。
? 如果是MDI 应用程序,则构造主边框窗口类的对象并创建主边框窗口。
? 另一重要工作是调用ProcessShellCommand()函数进行程序窗口启动方式的分析处理,
如果在其中程序的命令行中提供了文档文件名,则启动程序时,打开该文件;如果没
有提供文档文件名,则新建一个空文件。
此外,InitInstance()函数还可执行其他一些功能,这里就不一一说明了。Windows 允许在
同一时刻运行程序的几份拷贝。在概念上,应用程序的初始化可以被分为两个部分:一次xìng
的应用程序初始化工作和示例的初始化工作,前者在应用程序第一次运行时完成,后者在每
次运行程序时都会执行。框架中WinMain()函数重载InitInstance()函数以初始化在Windows
下运行的应用程序的每个新实例。通常,重载InitInstance 以构造主窗口对象并设置
CWinThread::m_pMainWnd 数据成员,使其指向这个窗口。
技巧:快速显示当前函数相关的信息
在编写代码或查看代码的时候,常常需要查看某个MFC 类库中定义的函数的相关信息。
可以通过快捷键F1 来实现,具体做法是在IDE 客户区将鼠标光标放在要查看函数名称处
并停止鼠标光标移动,按F1 键,这时将