MFC入门教程VS2013
- 格式:doc
- 大小:1018.04 KB
- 文档页数:18
vs2013快捷键及⼩技巧VS2013 使⽤ Ctrl + / 注释 Ctrl + Shift + /取消注释⼯具—>选项—>环境—>键盘(显⽰命令中输⼊注释移除原有的快捷键,添加新的Ctrl + /即可)是的代码段可以折叠选中代码Ctrl+M+H 即可使得选中的代码可以折叠 Ctrl+M+U 取消可折叠区域(代码⽐较乱的时候)格式化代码 Try CTRL + A + K + F. While holding down CTRL hit a, then k, then f.Visual studio’s smart indenting does automatically indenting, but we can select a block or all the code for indentation.1. Select all the code: Ctrl+a2. Use either of the two ways to indentation the code:Shift+Tab,Ctrl+k+f.打开⽂件的快捷键 Ctrl+;但是会载⼊很多⽆关的⽂件,所以有点慢回到光标的上⼀个位置Ctrl + -,或者下⼀个位置Ctrl + Shift + - (记得 - 是F9下⾯的那个- ⽽不是 num lock的那个)1、在解决⽅案资源管理器中输⼊⾸字母来选择⽂件点击解决⽅案资源管理器,然后键⼊想要寻找的⽂件名称,就能在管理器中展开的列表下找到想要的⽂件,未展开的列表是不能搜索的。
2、⼯具窗⼝停靠双击标题栏就可以把浮动⼯具窗⼝停靠到它先前所在的位置3、到打开窗⼝的导航下⼀个⽂件Ctrl+F6 ,回到上⼀个⽂件Ctrl+Shift+F6Peek View可以在不新建TAB的情况下快速查看、编辑⼀个函数的代码。
⽤法:在光标移⾄某个函数下,按下alt+F12。
然后在Peek窗⼝⾥可以继续按alt+F12。
VS2010/MFC编程入门教程之目录第一部分:VS2010/MFC开发环境第二部分:VS2010-MFC应用程序框架第三部分:对话框第四部分:常用控件第五部分:菜单、工具栏与状态栏第六部分:文档、视图和框架第七部分:MFC常用类第八部分:字体和文本输出第九部分:图形图像第十部分:Ribbon界面开发VS2010/MFC编程入门之前言鸡啄米的C++系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。
鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。
C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。
本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。
VC++简介VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台。
VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。
Visual Studio包含了VB、VC++、C#等编译环境。
当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。
但自微软2002年发布Visual 以来,微软建立了在.NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有V C++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。
VC++版本的选择:VS2010因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC ++ 6.0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。
MFC编程基础教程MFC(Microsoft Foundation Classes)是一套基于C++的应用程序框架,用于开发可视化的Windows应用程序。
MFC提供了丰富的工具和类库,使程序开发人员能够更加轻松地创建Windows应用程序。
一、MFC框架的介绍MFC是一种C++编程框架,用于开发Windows应用程序。
MFC提供了一系列的类和方法,用于处理窗口、消息处理、资源管理等常见的任务。
MFC框架的核心是一个称为CWinApp的类,它是应用程序的入口点。
二、MFC的基本概念1.窗口:MFC使用窗口来显示应用程序的用户界面。
窗口可以是主窗口、对话框、工具栏、菜单等。
2.消息处理函数:MFC使用消息机制来处理用户输入和系统事件。
消息处理函数是在收到特定的消息时执行的代码块。
3.控件:控件是用于用户交互的窗口元素,例如按钮、文本框、列表框等。
4.对象模型:MFC使用面向对象的概念来管理窗口和控件。
每个窗口或控件都是一个C++对象,有自己的属性和方法。
三、MFC应用程序的创建1.创建一个MFC应用程序的步骤:a. 新建项目:在Visual Studio中创建一个MFC应用程序项目。
c.编写代码:编写消息处理函数和其他代码,实现应用程序的功能。
d.编译和运行:编译项目并运行应用程序。
四、MFC消息处理1.应用程序的消息循环:MFC应用程序的消息循环负责接收和处理用户输入和系统事件。
2.消息映射表:消息映射表是一个用于将消息与消息处理函数关联的数据结构。
3.常见的消息类型:MFC提供了大量的消息类型,包括鼠标和键盘消息、窗口消息、菜单消息等。
五、MFC控件的使用1.控件的创建和操作:使用MFC提供的类和方法来创建和操作控件。
2.控件的属性设置:通过设置控件的属性来改变它的外观和行为。
3.控件事件的处理:通过处理控件的事件来响应用户的操作。
六、MFC对话框的使用2.对话框控件的操作:对话框中的控件可以像其他控件一样进行操作。
Visual Studio 2013 编程软件的使用详解Visual Studio 2013 – dektopVisual C++可以在微软官方站点直接下载最新的express版本,注册并且免费使用强大而灵活的 Visual C++ 语言和工具在 Visual Studio 允许在 .NET framework 上运行本机 Windows 应用商店 apps、本机桌面 apps 和托管 apps 的开发。
Visual C++ 包含以下元素:Visual Studio 开发环境开发环境通过编写代码以支持整个开发工作流,从创建和管理的项目,调试,进行分析并部署到最终用户。
可视化工具 C++compiler编译器支持本机代码以 .NET 公共语言运行时 (CLR) 的开发和开发。
VisualC++ 直接支持 x86 计算机的生成,并包括面向 x64 和 ARM 的编译器。
它优化所有平台的性能。
库C 运行库 (crt)包括安全增强选择要了解所造成安全问题的函数。
标准 C++ 库包含 (mfc) 库和标准模板库 (STL)。
活动模板库 (ATL)传递给 COM 组件和 apps 的创建。
Microsoft 基础类 (MFC) 库选件对的桌面 apps 创建具有传统或 Office 样式的用户界面。
并行模式库 (PPL)对 CPU 执行的异步和并行算法。
C++ AMP (C++ 加速的大量并行)对于大量在 GPU 执行的并行算法。
Windows 运行时 C++ 模板库 (WRL),为 Windows 应用商店 apps 和元素的 COM 样式的开发。
.NET framework 选件类库 (通过使用 C++/CLI),STL/CLR 和 C++ 支持库对托管 apps 的开发。
此外,在中,当使用 Visual C++ 时也可以访问 Windows 应用商店 apps 和桌面 apps 的 windows API。
收集的VS2013的使用小技巧(不断总结中)对于经常使用vs的朋友,如果能用键盘直接做的事,还是键盘更便捷点,现在我就把自己遇到的一些给写下来。
1、对一个函数的说明先写一个函数,以及参数,完成后,在函数上输入///,vs会自动补全说明的信息,你写上自己的功能说明就好了,下次你调用此函数就会有相应的说明了。
实例如下。
public int GetMaxId(){return dal.GetMaxId();}在函数上面输入///后,变为了/// <summary>/// 这里写上内容说明/// </summary>/// <returns></returns>public int GetMaxId(){return dal.GetMaxId();}2、注释快捷键选中所要注释的内容,然后Crl+K+C是注释,Crl+K+U是取消注释,光标放在所需要的注释行就行,不需要选中整行。
3、复制快捷键选中所要复制的内容,然后Crl+C是复制,Crl+V是粘贴,光标放在所需要的注释行就行,不需要选中整行。
同理删除所在行,Ctrl + Shift + L4、进入特定的函数把光标放在所要进入的函数,然后按F12,就可以进入所需要进入的函数的页面,Ctrl + _ (转到定义后返回),Ctrl + Shift + _ (再次转到定义),如果在本页上小标签看所需要的函数,那就使用Alt+F12,如果想继续找更深的函数,那就继续Alt+F12,在各个小标签内相互切换可以使用Crl + Alt+“+”,Crl +Alt “-”,或者点击小圆点也行。
5、自动补全工具Productivity Power Tools可以自动补全你的需要的东西,比如你输入了(,他会自动补全),就变成了(),如果你输入{,他会补全},变为{},还会补全“;”,还有自动换行,很是方便。
在vs上的工具==》扩展和更新,搜索输入Productivity进行安装即可。
VisualStudio2013MFC编程一、创建MFC项目创建MFC项目时,高级功能一般默认即可,但如果用不上“ActiveX 控件”可以去掉勾选;如果需要涉及网络编程就把“Windows 套接字” 选上。
不过没选上也不要紧,在程序中可以自己添加部分代码导入套接字。
二、整体架构学会看资源视图和类视图来快速寻找某些需要的东西比如通过类视图可以快速访问类的头文件和源文件,双击类名打开头文件,点击下方的函数可直接跳转到对应的函数定义处整个项目文件系统中会有两个 debug 文件夹,项目的直接目录下的 debug 文件夹包含了生成的 exe 文件,其中的.ilk 文件用于编译连接项目名称下的文件夹里包含了应用程序用到的资源,头文件,源文件等项目名称下的文件夹包含一个res 文件夹,是用来存放应用程序图标的,可以自己替换从而更改应用图标,不过名称和格式要一致,否则无法识别三、程序执行流程每创建一个项目,一般会包含3 个类,“关于”对话框类、主对话框类以及用于初始化项目的 App 类,假如项目名称为 Demo,那么这三个类分别为CAboutDlg、CDemoDlg、CDemoApp1、项目生成后,都会生成一个属于 CDemoApp 类的 theApp 对象,对本应用程序实例化,这个在 CDemoApp.cpp 文件中定义,创建时调用构造函数 CDemoApp::CDemoApp();这就是程序创建的第一步2、接下来程序会调用 winmain 函数,这个在项目文件中找不到,但可以在 VS2013 的安装路径下找到3、调用完 winmain 后,就通过 InitInstance()函数初始化窗口,包括注册、创建和显示对话框,InitInstance 函数是 CDemoApp 类中除构造函数以外唯一的成员函数4、应用程序创建完了,程序开始运行了,于是进入消息循环,windows 程序的事件都是消息驱动的,每产生一个消息就触发一个响应事件,消息和事件通过消息映射DECLARE_MESSAGE_MAP()联系在一起默认包含三个消息:ON_WM_SYSCOMMAND() //响应控制指令ON_WM_PAINT() //响应绘图消息,用于刷新窗口ON_WM_QUERYDRAGICON()//当用户拖动最小化窗口时取得光标5、当用户关闭应用程序时,会发送一个 WM_CLOSE 消息,程序响应后结束程序,如何在点击关闭时需要弹出其他对话框(比如用于提示保存),可以通过类向导添加WM_CLOSE 消息处理函数,变添加相关处理程序四、对话框类首先看看对话框类的继承关系,新建的项目类派生于CDialogEx 类, CDialogEx 在 CDialog 类的基础上进行了扩展,而 CDialog 派生于窗口类 CWnd,说明对话框也属于一种窗口构造函数CDemoDlg(),通过类向导生成的自定义变量或者控件的关联变量都会在构造函数中初始化一个值,不过开发者也可以直接在头文件定义变量,并手动在构造函数中添加初始化语句DoDataExchange 函数,在对话框中添加新的控件并通过类向导定义了相关变量后,都会在这个用于数据交换的函数中说明,添加变量的最大最小值也会在这里体现DECLARE_MESSAGE_MAP函数定义了所有消息的来源和处理函数。
实验指导一 VS2013的使用一、实验目的1.掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。
2.熟悉C语言运行环境—Visual Studio 2013,并掌握如何编辑、编译、调试和运行一个C程序。
二、实验要求1.上机时要遵守实验室的规章制度,爱护实验设备。
要熟悉与实验相关的系统软件(如编辑、汇编、连接和调试程序等)的使用方法。
在程序的调试过程中,有意识地学习及掌握程序的各种操作命令和图形界面的意义,以便掌握程序的调试方法及技巧。
2.掌握C语言头文件的含义和基本输出函数printf的使用方法。
三、实验内容1.C语言上机步骤⑴开机,在桌面启动Visual Studio 2013,如桌面没有Visual Studio2013,可在任务栏下单击【开始】→【所有程序】下查找Visual Studio 2013并启动。
⑵启动Visual Studio开发工具后,在菜单栏中选择【文件】→【新建项目】。
⑶在新建项目窗口中可以选择创建的项目类型,设置项目名称、位置、解决方案名称等。
项目名称、解决方案名称可自己设定。
单击【浏览】,选择【计算机】→【C盘】,在C盘根目录下新建一个以自己名字命名的文件夹,单击【选择文件夹】。
完成以上步骤后,变将“解决方案”保存在C盘根目录以自己名字命名的文件夹下。
最后单击【确定】。
⑷“应用程序类型”系统默认选择【控制台应用程序】,在“附加选项”中选中【空项目】,然后点击【完成】按钮。
(5)右键单击【解决方案资源管理器】下的【源文件】→【新建】→【项目】。
(6)在弹出的添加新项窗口里选择【C++ 文件(.cpp)】,并在名称输入框中填写“HelloWorld.c”:(7)输入源程序:在弹出的文件编辑窗口中输入下面的源程序(程序输入时切换至英文输入法):#include<stdio.h>int main(){printf("hello world\n");return 0;}(8)用“生成”菜单下的【生成解决方案】对源文件HelloWorld.c进行编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后【重新生成解决方案】。
点击C++里的MFC再点击MFCApplication,到下面改名字和路径,然后OK
然后点击Next,
选择single document,MFCstandard,简体中文,然后Finish
这时候可以先直接运行,看看工程的样子,操作如下
编译完成,
稍后有个空白菜单框弹出;
我们先创建资源视图,点击解决方案,再资源文件里找到以rc开头的文件双击,如图
双击后就会有四个视图
先点击Class view,再点击CMFCApplication1View(这里名字不一样,但都是以View结尾的),
鼠标右键****View那个类,如图
点击Class Wizard
对清一下信息,从Message里找到WM_LBUTTONDOWN和WM_LBUTTONUP和WM_MOUSEMOVE分别双击他们(他们按照字母顺序排列的)
关了这个窗口,点击是
进入以下界面
点击右边的****view.h,双击它
双击后找到protected,在里面添加***view类的全局变量CPoint m_point;
BOOL m_signal;
CPoint m_point2;
添加后
再点击***view.cpp
找到
选中这三个函数,删掉这段代码
然后复制粘贴上这段代码
/*
//画直线
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
m_point = point;
CView::OnLButtonDown(nFlags, point);
}
void CMFCApplication1View::OnLButtonUp(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
dc.MoveTo(m_point);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
void CMFCApplication1View::OnMouseMove(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CView::OnMouseMove(nFlags, point);
}
//画直线
*/
//画曲线
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
m_point = point;
m_signal = true;
CView::OnLButtonDown(nFlags, point);
}
void CMFCApplication1View::OnLButtonUp(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
m_signal = false;
m_point2 = point;
CView::OnLButtonUp(nFlags, point);
}
void CMFCApplication1View::OnMouseMove(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if (m_signal == true)
{
dc.MoveTo(m_point);
dc.LineTo(point);
m_point = point;
}
CView::OnMouseMove(nFlags, point);
}
//画曲线
/*
//涂鸦
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
m_point = point;
m_signal = true;
CView::OnLButtonDown(nFlags, point);
}
void CMFCApplication1View::OnLButtonUp(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CBitmap m_bitmap2;
m_bitmap2.LoadBitmapW(IDB_BITMAP1);
CBrush m_brush(&m_bitmap2);
CClientDC dc(this);
dc.FillRect(CRect(m_point, point), &m_brush);
CView::OnLButtonUp(nFlags, point);
}
void CMFCApplication1View::OnMouseMove(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CView::OnMouseMove(nFlags, point);
}
//涂鸦
*/
/*
//扇形
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
m_point = point;
m_signal = true;
CView::OnLButtonDown(nFlags, point);
}
void CMFCApplication1View::OnLButtonUp(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
m_signal = false;
m_point2 = point;
CView::OnLButtonUp(nFlags, point);
}
void CMFCApplication1View::OnMouseMove(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if (m_signal == true)
{
//CPen* blackpen=dc.SelectObject(&pen);
dc.MoveTo(m_point);
dc.LineTo(point);
//m_point=point;
dc.LineTo(m_point);
}
CView::OnMouseMove(nFlags, point);
}
//扇形
*/
点击DEBUG
就会出现画曲线的程序,这是因为我画曲线的代码没注释掉(/* */和//)
你们可以把画曲线的代码注释掉,把画直线的注释去掉,再运行,就是画直线的了其他都可以运行,只有涂鸦的不行,因为涂鸦还要操作:
1.去掉涂鸦代码的注释,把其他代码(三个函数)注释,
2.点击资源视图,找到以.rc结尾的文件,按鼠标右键,选择添加资源,如图
双击Bitmap
点击画笔如图,在格子里画要涂鸦的内容
我写了个李,然后再关闭这个窗口,点击如图,然后是保存
然后运行,就是涂鸦的程序了
四个程序都能运行了。