深入浅出MFC——MFC骨干程序(四)
1. 熟记MFC类层次结构:
2. AppWizard可以为我们制作出MFC程序骨干:
3. Document/View支撑你的应用程序:Document/View的价值在于,这些MFC类已经把一个应用程序所需的“数据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,所以你可以(也应该)在派生类中改写它们。有关文件读写的操作在CDocument的Seiralize函数中进行,有关画面显示的操作在CView的OnDraw或OnPaint函数中进行。
4. 一个标准的MFC MDI程序使用这些类:
5. MFC MDI程序流程:
6. Document Template:
(1):
(2):
(3):
(4):
7. Document/View:
8. MDI主窗口的诞生:前面的Hello程序,主窗口采用CFrameWnd类。本例是MDI风格,将采用CMDIFrameWnd类。
9. 工具栏(CToolbar)和状态栏(CStatusBar)的诞生:两个对象隶属于主窗口。
10. 鼠标拖放(Drag and Drop):CWnd::DragAcceptFile; CWinApp::EnableShellOpen;CWinApp::RegisterShellFileTypes;
11. 消息映射(Message Map):
12. 标准菜单File/Edit/View/Window/Help:
13. 对话框:
深入浅出MFC——MFC骨干程序(四)的更多相关文章
- 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS
如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...
- 四种DLL:NON-MFC DLL, Regular DLL Statically/Dynamically Linked to MFC, MFC Extension DLL
参考资料: https://msdn.microsoft.com/en-us/library/30c674tx.aspx http://www.cnblogs.com/qrlozte/p/484442 ...
- MFC定时关机程序的实现1
写个定时关机程序自用,界面简单实用,最终界面如下 第一步,新建一个MFC对话框应用程序,拖几个控件过来, 界面如下: 然后给下拉列表框,复选按钮绑定变量,以方便进行操作. CComboBox m_co ...
- Arduino可穿戴教程之第一个程序——上传运行程序(四)
Arduino可穿戴教程之第一个程序——上传运行程序(四) 2.4.5 上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...
- 深入浅出MFC——MFC程序的生死因果(三)
1. 本章主要目的:从MFC程序代码中检验出一个Windows程序原本该有的程序进入点(WinMain).窗口类注册(RegisterClass).窗口产生(CreateWindow).消息循环(Me ...
- 深入浅出MFC——MFC六大关键技术仿真(二)
1. 仿真MFC目的:以MFC为例,学习application framework的内部运行.MFC六大关键技术: (1)MFC程序的初始化过程 (2)RTTI(Runtime Type Inform ...
- MFC学习之程序执行过程梳理
*首先利用全局变量对象theApp启动应用程序.这是由于这个全局对象,基类CWinApp中this的指针才干指向这个对象.假设没有这个全局对象,程序在编译时不会出错,但在执行时就会出错. *调用全局应 ...
- MFC中SDI程序创建流程的回顾
SDI程序创建流程的回顾 从CWinApp.InitialInstance()开始, 1.首先应用程序对象创建文档模板; CSingleDocTemplate* pDocTemplate; pDocT ...
- 使用MFC创建C++程序
编译环境:VS2017 MFC简介: MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数. ...
随机推荐
- svn解决不能clean的方法
http://blog.csdn.net/victory08/article/details/42100325 svn执行clean up后出现提示:svn cleanup failed–previo ...
- Self_Java + Selenium + Maven 环境搭建步骤
转自:http://www.jianshu.com/p/3c05e8c9ee81 我们使用Java+Selenium WebDriver 来进行环境的搭建,同样分为两个部分: 安装Java 和 int ...
- mac下配置android环境变量
下面我将一下mac环境下的配置步骤: 1.在本地目录(home directory)中创建文件.bash_profile2.在文件中写入以下内容:export PATH=${PATH}:/Users/ ...
- 【转】【项目管理与构建】Maven
在现实的企业中,以低成本.高效率.高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的.当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等.如果你 ...
- 修改socket文件, MySQL启动报错
事情是这样的, 我要搭建MySQL主从, 做读写分离, 然后就要了一台服务器搭建mysql, 最近犯懒, 就寻思搞一个二进制的吧直接启用 一堆问题就出现了 [ERROR] Can't start se ...
- OpenGL基本框架与三维对象绘制
上次我们介绍了OpenGL的环境构建和二维对象的绘制,这次我们来讲讲三维对象的绘制: 绘制代码如下: Github代码仓库 // opengltest2.cpp : Defines the entry ...
- Java如何检查一个线程停止或没有?
Java如何检查一个线程停止或没有? 解决方法 下面的示例演示如何使用 isAlive()方法检查一个线程是否停止. public class Main { public static void ma ...
- 嵌入式开发之uart---rs232 和rs485 通用自定义通信协议
http://www.go-gddq.com/html/QiTa-ZongHe_tx/2013-01/992622.htm http://blog.csdn.net/niuxuheng/article ...
- c# mvc 获取 HtmlHelper 表达式值和时间格式化 去边框
/// <summary> /// 返回没有边框的只读的TextBox标签 /// </summary> /// <typeparam name="TModel ...
- Python入门学习:网络刷博器爬虫
1.比较有趣,可以不断刷新指定的网址 2.源码: #!/usr/bin/env python3 # -*- coding: utf-8 -*- import webbrowser as web imp ...