正在加载图片...
Visual c++ RUNTIME CLASS(CSDIDemoview)) AddDocTemplate(pDocremplate)i / Parse command line for standard shell commands, DDE, file open CCommandline info cmdInfo ParsecommandLine(cmdInfo) / Dispatch commands specified on the command line if ( ProcessshellCommand (cmdInfo)) urn FALSE / The one and only window has been initialized, so show and update it m pMainwnd->Showwindow(Sw SHoW) m pMainwnd->Updatewindow ()i return TRUE; 从代码中可以看出, InitInstance(函数主要完成了下面几方面功能。 口通过 LoadS Settings函数从注册表中获取一些标准的文件选项,包括最近打开的文件 名称,在程序的“文件”菜单中列出 口构造文档模板类对象 pDoc Templat,指明文档模板的文档类、框架窗口类和视图类 口调用 ParseCommandLine函数进行程序窗口启动方式的分析处理。如果没有提供命令行参数 (打开文档的文件名),则新建一个新文档。 口调用 Show Window()和 Update Window函数显示、更新窗口。其中,m_ pAin Wnd成员变量是 个Cwnd类型的指针,它保存了应用程序框架窗口对象的指针。也就是说,是指向 MAin frame对象的指针。 注意在 CWinApp的派生关中,必须重 nitInstance函数,因为 CWinApp并不知道应用程序需要什 么样的窗口,它可以是多文档窗口和单文档窗口,也可以是基于对话框的。 244RunQ函数 Winmain在初始化应用程序实例后,就调用 C Winthread类的Run(函数来处理消息循环。在 Ⅴ isual c++6.0安装目录下的“ Microsoft visual Studio\vo98\MFC\SRC”路径中的源文件 THRDCORE CPP”中会找到Run(函数的实现代码,如下: int cwinThread::: Run() ASSERT VALID (this) / for tracking the idle time state bool bide TRUE // acquire and dispatch messages until a WM QUIT message is received // phasel: check to see if we can do idle work while (iDle &6 PeekMessage(&m msgcur, NULL, NULL, NULL, PM NOREMOVE)) // call onIdle while in bIdle state 励志照亮人生编程改变命运42 励志照亮人生 编程改变命运 零基础学 Visual C++ RUNTIME_CLASS(CSDIDemoView)); 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; } 从代码中可以看出,InitInstance()函数主要完成了下面几方面功能。 ❑ 通过LoadStdProfileSettings()函数从注册表中获取一些标准的文件选项,包括最近打开的文件 名称,在程序的“文件”菜单中列出。 ❑ 构造文档模板类对象pDocTemplat,指明文档模板的文档类、框架窗口类和视图类。 ❑ 调用ParseCommandLine函数进行程序窗口启动方式的分析处理。如果没有提供命令行参数 (打开文档的文件名),则新建一个新文档。 ❑ 调用ShowWindow()和UpdateWindow()函数显示、更新窗口。其中,m_pMainWnd成员变量是 一 个 CWnd 类型的指针,它保存了应用程序框架窗口对象的指针。也就是说,是指向 CMainFrame对象的指针。 注意 在CWinApp的派生类中,必须重载InitInstance()函数,因为CWinApp并不知道应用程序需要什 么样的窗口,它可以是多文档窗口和单文档窗口,也可以是基于对话框的。 2.4.4 Run()函数 WinMain在初始化应用程序实例后,就调用CWinThread类的Run()函数来处理消息循环。在 Visual C++6.0安装目录下的“ Microsoft Visual Studio\VC98\MFC\SRC”路径中的源文件 “THRDCORE.CPP”中会找到Run()函数的实现代码,如下: int CWinThread::Run() { ASSERT_VALID(this); // for tracking the idle time state BOOL bIdle = TRUE; LONG lIdleCount = 0; // acquire and dispatch messages until a WM_QUIT message is received. for (;;) { // phase1: check to see if we can do idle work while (bIdle && !::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE)) { // call OnIdle while in bIdle state
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有