MFC_1.1 基本知识
如何创建一个MFC项目
选择 MFC 应用程序进行创建,不要使用非英文名


选择对话框风格进行编写


可以通过自定义的设置修改类名


MFC 的基本知识
MFC 是纯面向对象的编程,是 SDK 经过 C++ 封装产生
MFC 是装了 SDK 大部分的函数,简化了操作,同时保留了原函数(::)
MFC 入口函数的定义
MFC 的入口函数同样是 WinMain,但是被封装起来了
需要定义一个继承自 CWinApp 的类,并定义一个唯一的全局对象并重写 InitInstance 函数
InitInstance 扮演的就是用户代码入口点的角色,通常在这里弹出窗口
通过空项目如何创建一个MFC程序
设置子系统为 GUI,设置MFC的使用方式(静态 \ 共享的)
包含一些必要的头文件,afxwin.h 是必不可少的
自己编写一个继承自 CWinApp 的类并重写其中的 InitInstance 作为入口函数
定义唯一的一个 CMyWinApp 类的全局对象
// 1. 项目属性 -> 链接器 -> 系统 -> 子系统 -> GUI
// 项目属性 -> 常规 -> MFC的使用 -> dll\lib
// 2. 包含必须的头文件 afxwin
#include <afxwin.h>
#include "resource.h"
#include <afxdialogex.h>
// 3. 定义自己的类并且必须继承自 CWinApp
class CMyWinApp : public CWinApp
{
// 5. 必须重写一个虚函数用于充当用户代码的入口
// 应该在其中进行初始化和编写窗口或对话框的操作
virtual BOOL InitInstance() override
{
// 使用 m_pMainWnd 指定当前的主窗口
// 可以使用全局函数 AfxGetMainWnd() 获取到主窗口
// 5.1 创建一个模态对话框对象
CDialog Dialog(IDD_DIALOG1);
this->m_pMainWnd = &Dialog;
//需要用到头文件<afxdialogex.h>
Dialog.DoModal();
// 5.2 创建一个非模态的对话框
CDialog* pDialog = new CDialog;
this->m_pMainWnd = pDialog;
pDialog->Create(IDD_DIALOG1);
pDialog->ShowWindow(SW_NORMAL);
// 通过对象的 m_hWnd 可以找到它的句柄
return TRUE;
}
};
// 4. 在全局控件创建唯一的 CMyWinApp 对象
CMyWinApp theApp;
// 定义一个继承自 CWinApp 的类,并重写其中的 InitInstance 虚函数
// 最后在全局范围内定义唯一的一个 CMyWinApp 的对象

MFC_1.1 基本知识的更多相关文章
- 你必须知道的EF知识和经验
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 学点HTTP知识
不学无术 又一次感觉到不学无术,被人一问Http知识尽然一点也没答上来,丢人丢到家了啊.平时也看许多的技术文章,为什么到了关键时刻就答不上来呢? 确实发现一个问题,光看是没有用的,需要实践.看别人说的 ...
- java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?
你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...
- [C#] C# 知识回顾 - 学会处理异常
学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...
- [C#] C# 知识回顾 - 学会使用异常
学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...
- [C#] C# 知识回顾 - 异常介绍
异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...
- [.NET] C# 知识回顾 - Event 事件
C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...
随机推荐
- Chromium硬件加速渲染的UI合成过程分析
在Chromium中.Render端和WebGL端绘制出来的UI终于是通过Browser端显示在屏幕上的.换句话说.就是Browser端负责合成Render端和WebGL端的UI.这涉及到不同Open ...
- OCP-1Z0-051-题目解析-第21题
21. Examine the description of the EMP_DETAILS table given below: name NULL ...
- 【LIS】Luogu P1020 导弹拦截
昨天晚上看蓝书,看到了LIS问题的优化解法. 是比O(n方)更快的解法,实际上是一个常数优化. 先讲一下朴素的解法: 一个集合a,a[i]是第i个元素.设dp[i]为以编号为i的元素结尾的最长不上升子 ...
- spi和I2c的速率
I2C协议v2.1规定了100K,400K和3.4M三种速率(bps).SPI是一种事实标准,由Motorola开发,并没有一个官方标准.已知的有的器件SPI已达到50Mbps.具体到产品中SPI的速 ...
- Android studio导入项目时的问题(Re-download dependencies and sync project (requires network))
引入了别人的项目出现了这种情况提示是跟gradle cache有关,我的解决方法是跟gragle的配置有关 改下这个: distributionUrl=https\://services.gradle ...
- bzoj1050
最小生成树 其实这道题是最小生成树的变种,我们发现答案不一定在最小/最大生成树上,最短路算法也不可行,因为我们我们并不是希望最小值尽量的大,最大值尽量的小,这样不一定是最优的,那么我们枚举最小的边,然 ...
- python 之filter()函数
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filt ...
- golang——strconv包常用函数
1.func ParseBool(str string) (value bool, err error) 返回字符串表示的bool值.它接受1.0.t.f.T.F.true.false.True.Fa ...
- 乐搏讲自动化测试- Python自动化测试前景怎么样(4)
Python言语还能够写爬虫,但仅仅只是爬虫的入门罢了.通过Python入门爬虫比较简略易学,不需要在一开始把握太多太根底太底层的常识就能够很快上手,而且很快能够做出成果,十分合适小白一开始想做出点看 ...
- 探寻宝藏 --- 双线DP
双线DP , 在郑轻的时候 做过 这种双线DP , 这是多维DP 应该是比较简单的 但是那个 时间复杂度的优化 始终看不懂 . 先附上代码吧 , 等看懂了再来 , 补充一下 解释 . #in ...