CWinApp::InitInstance

virtual BOOL InitInstance( );

返回值:如果初始化成功,则返回非零值;否则返回0。

说明:
Windows允许在同一时刻运行程序的几份拷贝。在概念上,应用程序的初始化可以被分为两个部分:一次性的应用程序初始化工作,这些在应用程序第一次运行时完成,以及示例的初始化工作,每次运行程序的一个拷贝时都会执行这些操作,包括第一次运行时。框架中WinMain的实现调用这个函数。
重载InitInstance以初始化在Windows下运行的应用程序的每个新实例。通常,你重载InitInstance以构造主窗口对象并设置CWinThread::m_pMainWnd数据成员,使其指向这个窗口。有关重载这个成员函数的更多信息参见“Visual C++ 程序员指南”中的“CWinApp:应用程序类”。

示例:
// AppWizard 根据你选择的选项实现重载的InitInstance函数。
// 例如,对于下面由AppWizard创建的代码,选择了单文档界面(SDI)选项。
// 你可以在AppWizard创建的代码中加入其它的每个实例都执行的初始化代码。
BOOL CMyApp::InitInstance()
{
  // 标准的初始化工作
  // 如果你没有使用这些特性,并且希望减小最终可执行程序的大小,
  // 你应当从下面的初始化例程中移去不必要的代码。
  SetDialogBkColor(); // 将对话框的背景色设为灰色。
  LoadStdProfileSettings(); // 载入标准的INI文件选项(包括MRU)
  // 注册应用程序的文档模板。文档模板
  //被用作文档、框架窗口和视图之间的联系。
  CSingleDocTemplate* pDocTemplate;
  pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME,
    RUNTIME_CLASS(CMyDoc),
    RUNTIME_CLASS(CMainFrame), // SDI的主框架窗口
    RUNTIME_CLASS(CMyView)
   );
  AddDocTemplate(pDocTemplate);
  // 创建一个新(空的)文档
  OnFileNew();
  if (m_lpCmdLine[0] != '\0')
  {
    // 任务:在这里加入命令行处理代码
  }
  return TRUE;
}