WEB开发网
开发学院软件开发VC MFC程序中的WinMain函数(2) 阅读

MFC程序中的WinMain函数(2)

 2008-11-24 19:59:38 来源:WEB开发网   
核心提示: 我们在第2章中阐述了子类构造函数的执行过程,当一个子类在构造之前会先调用其父类的构造函数,MFC程序中的WinMain函数(2)(2),因此theApp对象的构造函数CTestApp在调用之前,会调用其父类CWinApp的构造函数,找到Microsoft提供的CWinApp类定义的源文件:

我们在第2章中阐述了子类构造函数的执行过程,当一个子类在构造之前会先调用其父类的构造函数。因此theApp对象的构造函数CTestApp在调用之前,会调用其父类CWinApp的构造函数,从而就把我们程序自己创建的类与Microsoft提供的基类关联起来了。CWinApp的构造函数完成程序运行时的一些初始化工作。

下面让我们看看CWinApp类构造函数的定义。像前面搜索“WinMain”函数那样,找到Microsoft提供的CWinApp类定义的源文件:appcore.cpp,并在编辑环境中打开,其中CWinApp构造函数的代码如例3-5所示。

例3-5

  CWinApp::CWinApp(LPCTSTR lpszAppName)
  {
    if (lpszAppName != NULL)
      m_pszAppName = _tcsdup(lpszAppName);
    else
      m_pszAppName = NULL;
    // initialize CWinThread state
    AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();
    AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;
    ASSERT(AfxGetThread() == NULL);
    pThreadState->m_pCurrentWinThread = this;
    ASSERT(AfxGetThread() == this);
    m_hThread = ::GetCurrentThread();
    m_nThreadID = ::GetCurrentThreadId();
    // initialize CWinApp state
    ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please
    pModuleState->m_pCurrentWinApp = this;
    ASSERT(AfxGetApp() == this);
    // in non-running state until WinMain
    m_hInstance = NULL;
    m_pszHelpFilePath = NULL;
    m_pszProfileName = NULL;
    m_pszRegistryKey = NULL;
    m_pszExeName = NULL;
    m_pRecentFileList = NULL;
    m_pDocManager = NULL;
    m_atomApp = m_atomSystemTopic = NULL;
    m_lpCmdLine = NULL;
    m_pCmdInfo = NULL;
    // initialize wait cursor state
    m_nWaitCursorCount = 0;
    m_hcurWaitCursorRestore = NULL;
    // initialize current printer state
    m_hDevMode = NULL;
    m_hDevNames = NULL;
    m_nNumPreviewPages = 0;   // not specified (defaults to 1)
    // initialize DAO state
    m_lpfnDaoTerm = NULL;  // will be set if AfxDaoInit called
    // other initialization
    m_bHelpMode = FALSE;
    m_nSafetyPoolSize = 512;    // default size
  }

上一页  1 2 3 4 5 6  下一页

Tags:MFC 程序 WinMain

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接