有个大佬,写了一个入门日志,其实挺好的,只是因为缺少图,所以读起来相对有点费力些,
(大佬日志,见:https://blog.csdn.net/Pepto_bismal/article/details/77725739)
本文,把他的整理了一下,(即使没有任何VS基础也能入门)给大家一个基础的认知,其实基础认知就够了剩下的内容,需要的时候再去查就好了
详细给了一些图片和解释(就是学习日志时的踩坑)希望对大家有帮助,一起进步
MFC系列:
一、MFC的创建和打开
创建方式:打开Visual Studio2017 文件->新建->项目->>>MFC应用程序->输入名称如“MFC5”(解决方案自动与名称相同)->>>完成->>>下一步->>>将“多个文档”勾选掉,选择“基于对话框”->>>完成
这样我们就得到了一些基本的文件,介绍一下两个窗口
解决方案资源管理器
在“解决方案资源管理器”视图里可以看到如图所示的外部依赖项、头文件、源文件、资源文件。
解决方案资源管理器上文件介绍
stdafx: 是每个vs里都会生成的东西,作用是把C++工程中使用的MFC头文件预先编译,以后该工程编译时,直接使用预编译的结果,这样可以加快编译速度。
MFC5DIg:写的控件编程代码都会在这里
资源文件 :里面有资源视图的一些文件(资源视图见下)
资源视图
大部分的MFC会使用资源视图,资源视图打开方式为:视图——其他窗口——资源视图
资源视图介绍:
1.DIALOG
对话框资源,对于基于对话框的应用程序十分重要。里面有建立的各种对话框,点击打开后,就能看到上面的布局和控件。
2. ICON
图标资源,可以为你的应用程序exe添加美观的图标。
3. String Table
字串表,里面定义了当你把鼠标放在工具栏上显示的关于某个工具栏的信息。
4.version
版本信息,包括文件版本号,描述,版权,备注,产品名称,公司,源文件名等等。
二:控件的添加与认识
在“资源视图”中,IDD_MFC5_DIALOG是当前所示的界面,可以在上面添加一系列控件,
右侧有工具箱...选择所需要的拖动放进来就好.
修改内容
点击对应的控件就能直接改内容
修改ID
右击里面的属性就能改。
下图为一个控件的属性
每个属性都有不一样的内容,不需要一一详细去理解,只要知道有这个东西,想实现功能的时候去查别人攻略的时候,知道在哪改属性就好了
三:MFC入门需要掌握的代码块
1.消息处理函数
双击控件就能进入
代码展示
void MFC5Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
}
这里的作用是能添加一系列动作之后的操作,比如这里就是单击按钮,你所需要执行的函数
2.初始化事件
在XXXDIG.cpp里有,就是相应事件的那个代码页里
BOOL CMFCApplication1Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != nullptr)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
在初始化整个对话框的时候使用,一般处理一些需要在对话框里直接加载的东西
我这里直接给了一个程序里的代码,注意这个不是你写的,他本来就有,而且函数内容刚初学的人不需要知道,只要看最后一行,在此添加额外的初始化代码这里(这备注原来就有),添加你想要的初始化代码即可
3.类向导
右键即可打开类向导,右键能打开的还有
1.添加消息处理函数(与1.中的功能一样)
2.添加类
3.添加变量(2.与3.的功能和类向导里的添加功能一样)
4.属性(属性的作用:见2.控件)
下图为类向导的界面
类向导是一个集成的功能块,里面能查看自己添加的变量,函数,类等,直接在这里添加非常方便
每个控件(乃至新的对话框)都不能直接作为类,一定要自己添加类,这样才能在消息处理函数中使用
控件添加命名的变量,对话框添加类