MFC 解密(1) 窗口初始化过程

1. 对于Dialog程序

 

每个自己的MFC程序都有一个派生自CWinApp的类(CMyApp) 和 一个该类的全局对象 CMyApp theApp;

 

CMyApp -> CWinApp -> CWinThread -> CCmdTarget -> CObject

 

以下摘自 winmain.cpp

 

由上可见pThread->InitInstance()

CMyApp::InitInstance() 被调用

在这个函数中 窗口被

1. 创建

2. 显示

 

以下代码摘自CMyApp.cpp

 

其中CMYDlg dlg 在基类的构造函数中设置窗体的style

在DoModal中创建并显示窗体

 

 

在DoModal中进入消息循环

对于Modal window 在CWnd::RunModalLoop() 函数用来进行消息循环

不需要调用CWinApp::Run();

 

这样一个dialog的

创建

显示

消息循环

的过程就很清楚了 

 

 

2. 对于文档程序  基本原理相同

 

以下代码摘自MyDoc.cpp

 

程序不会被中断

在CWinApp::Run中进行消息循环

 

以下摘自winmain.cpp

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值