第3课 MFC框架程序
来源:互联网 发布:lomo拍立得知乎 编辑:程序博客网 时间:2024/06/06 20:55
1.在main 或WinMain之前,全局变量(对象)已经被分配内存并初始化了。
2.在MFC 中在WinMain之前有个 theApp全局变量先被构造并被初始化,而由于子类构造函数执行前,其父类的构造函数先被执行,所以 CTestApp的父类CWinAPP 的构造函数先执行。产生了 theApp对象后,在WinMain()中的指针 *pThread和*pApp 就有了内容。
知识点: Afx前缀的函数代表应用程序框架 (Application Framework)函数,都是全局函数,在程序的任何地方都可以调用它。
3.MFC大致流程:
CTestApp theApp;// 构造全局对象
WinMain()
{
AfxWinMain();// 调用下面的函数
}
AfxWinMain()
{
pThread->Initinstance();// 初始化工作和注册窗口类,窗口显示和更新
pThread->Run();// 消息循环
}
而在 BOOL CTestApp::InitInstance()中的代码
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CTestView));
AddDocTemplate(pDocTemplate);
完成了将这三个类关联起来的工作。
4.如何在单文档文件中显示一个 CButton的对象?
在CMainFrame::OnCreate()中定义一个 CButton的对象btn; 然后调用 btn.Create("维新",WS_DISABLED |WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
CRect(0,0,300,100),/*GetParent(),*/this,123);
注意点:
(1). 此处btn不能是局部变量,否则它的生命周期太短,将不能显示。
(2). 在create函数的第二个参数中加入 WS_VISIBLE 参数才行。否则必须调用 ShowWindow
也可以在 view的OnCreate 消息响应函数中加入
(3).CButton 类的定义头文件在 afxwin.h中,而stdafx.h 包含了afxwin.h,所以可以直接使用。因为 MFC中的每一个类中都有#include "stdafx.h"的声明。
5 一个单文档窗口(多文档),标题栏和菜单栏位于 MainFrame的非客户区,而工具栏位于 MainFrame的客户区。而视图位于MainFrame的客户区。
0 0
- 第3课 mfc框架程序剖析
- 第3课 MFC框架程序
- 【MFC】第3课 MFC程序框架学习笔记
- 第3课 mfc框架程序剖析【转载】
- MFC学习-第2,3课 MFC框架的运行机制
- MFC框架程序剖析(3)
- 学习笔记:第3课 MFC框架介绍
- MFC框架流程(vc++深入详解第3课)
- 《VC++深入详解》学习笔记[2]——第3章MFC框架程序剖析
- 3MFC程序框架的剖析
- MFC程序框架剖析
- MFC之程序框架
- MFC程序框架剖析
- MFC之程序框架
- MFC框架程序
- MFC修改程序框架
- MFC框架程序剖析
- MFC程序框架
- 第2课 掌握C++
- eclipse-maven-sourceTree配置和简单使用
- Linux基本命令(三)
- android使用CountDownTimer类,实现类似抢购的倒计时控件
- MyBatis配置详解
- 第3课 MFC框架程序
- Apache Phoenix的Array类型
- Nginx源代码分析之群惊问题(十七)
- oracle.jbo.RowInconsistentException: JBO-25014: Another user has changed the row with primary key or
- 第4课 简单绘图
- C#之运算符重载学习案例
- 第5课 文本编程
- Maven基础配置—上传jar包到私服
- 主线程消息循环机制本质