MFC 流程
来源:互联网 发布:java big5编码 编辑:程序博客网 时间:2024/04/30 14:22
首先利用全局应用程序对象theApp启动应用程序。正是产生了这个全局对象,基类CWinApp中的this指针才能指向这个对象。如果没有这个全局对象,程序在编译时不会出错,但在运行时就会出错。
n 调用全局应用程序对象的构造函数,从而就会先调用其基类CWinApp的构造函数。后者完成应用程序的一些初始化工作,并将应用程序对象的指针保存起来。
主函数 WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
n 进入WinMain函数。在AfxWinMain函数中可以获取子类(对Test程序来说,就是CTestApp类)的指针,利用此指针调用虚函数:InitInstance,根据多态性原理,实际上调用的是子类(CTestApp)的InitInstance函数。后者完成应用程序的一些初始化工作,包括窗口类的注册、创建,窗口的显示和更新。期间会多次调用CreateEx函数,因为一个单文档MFC应用程序有多个窗口,包括框架窗口、工具条、状态条等。
n 进入消息循环。虽然也设置了默认的窗口过程函数,但是,MFC应用程序实际上是采用消息映射机制来处理各种消息的。当收到WM_QUIT消息时,退出消息循环,程序结束。
LPTSTR lpCmdLine, int nCmdShow)
{ return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);}
int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
CWinThread* pThread = AfxGetThread();
CWinApp* pApp = AfxGetApp(); //保持app对象
// AFX internal initialization //内存状态的初始化
if (!AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow))
goto InitFailure;
// App global initializations (rare)
if (pApp != NULL && !pApp->InitApplication()) goto InitFailure;
// Perform specific initializations
if (!pThread->InitInstance()) // 对窗口进行设计,注册和创建,显示和更新 {
if (pThread->m_pMainWnd != NULL)
{
TRACE(traceAppMsg, 0, "Warning: Destroying non-NULL m_pMainWnd/n");
pThread->m_pMainWnd->DestroyWindow();
}
nReturnCode = pThread->ExitInstance();
goto InitFailure;
}
nReturnCode = pThread->Run(); //对整体的消息循环进行相应的响应
InitFailure:
#ifdef _DEBUG
// Check for missing AfxLockTempMap calls
if (AfxGetModuleThreadState()->m_nTempMapLock != 0)
{
TRACE(traceAppMsg, 0, "Warning: Temp map lock count non-zero (%ld)./n",
AfxGetModuleThreadState()->m_nTempMapLock);
}
AfxLockTempMaps();
AfxUnlockTempMaps(-1);
#endif
AfxWinTerm();
return nReturnCode;
}
- MFC 流程
- MFC流程
- mfc程序流程
- MFC应用程序调用流程
- MFC应用程序执行流程
- MFC程序消息流程
- MFC 程序执行流程
- MFC 运行流程
- MFC程序执行流程
- MFC框架流程
- MFC程序执行流程
- MFC程序流程
- MFC Paint的流程
- MFC执行流程
- MFC应用程序流程,
- MFC 程序执行流程
- MFC流程走向
- MFC流程解析
- .Net反射
- Session的原理
- Webdings字体图案 http://www.blogjava.net/majianan/archive/2007/05/04/88726.html
- 培训师升华:万物皆着我之色彩
- JS办法处理CheckBoxList生成的br
- MFC 流程
- 四甲基乙二胺的介绍
- MINIX 3 Kernel API
- 仿淘宝网首页导航条效果
- 第三十九章 不规则动词表
- 把.NET程序部署到没有安装.NETFramwork的机器上
- 栈和堆
- 手机驱动的涉及
- Symbian系统中的异常处理和清理机制