MFC实用教程
MFC_基本控件使用

MFC_基本控件使用MFC(Microsoft Foundation Class)是一种用于开发Windows应用程序的编程框架,它提供了一系列的类和函数,方便开发者快速地创建Windows界面和处理事件。
在MFC中,基本控件是开发应用程序的重要组成部分,它们用于显示和交互用户界面。
本文将介绍MFC中几种常用的基本控件以及它们的使用方法。
1. 按钮控件(CButton):按钮控件用于接收用户的点击操作,通常用于触发相应的事件处理函数。
创建按钮控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“按钮”并将其拖动到对话框上;3)设置按钮的属性,如ID、文本、尺寸等。
1)在资源视图中右击对应的对话框,选择“添加控件”;组合框控件允许用户从预定义的选项中进行选择,类似于下拉列表。
创建组合框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“组合框”并将其拖动到对话框上;3)设置组合框的属性,如ID、选项列表、尺寸等。
4. 列表框控件(CListBox):列表框控件用于显示一个选项列表,并且可以支持多选。
创建列表框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“列表框”并将其拖动到对话框上;3)设置列表框的属性,如ID、选项列表、尺寸等。
5. 树形视图控件(CTreeCtrl):树形视图控件用于显示一个层级结构的数据,类似于文件夹结构或者程序的菜单栏。
创建树形视图控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“树形视图”并将其拖动到对话框上;3)设置树形视图的属性,如ID、尺寸等;4)使用CTreeCtrl的成员函数添加、删除、修改树节点。
6. List控件(CListCtrl):1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“List控件”并将其拖动到对话框上;3)设置List控件的属性,如ID、列数、尺寸等;以上是几种常用的MFC基本控件的使用方法,通过使用这些控件,可以轻松地创建出一个功能完善、交互友好的Windows应用程序。
一步一步教你如何通过MFC操作excel

excel合成需要如下步骤:打开MFC工程(任何工程都可以,此处以串口为例)→打开MFC工程类向导并选择Automation→点击Add class,并选择from a type library。
江会弹出如下浏览框在浏览框中找到并选择office的excel.exe(或者是excel.olb),这里必须是office,而不能是wps,因为wps对应的事excel.et而不是exe文件,这里我选择的是excel.exe,我是用的是office2010,通过电脑的文件搜索功能定位了excel.exe的位置并添加的。
打开excel.exe之后,选择新类,如图总共选择六个类,分别是_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range,加入新类,即可达到用MFC操作excel的前提条件。
选完之后,可在classview中看到如下六个新类。
→在My***Dlg.cpp中加入#include”excel.h”与#include”comdef.h”,同时,在My***.cpp中加入#include”excel.h”→在My***App::InitInstance(),加入如下代码:if(!AfxOleInit() ){AfxMessageBox("初始化Ole出错!");return FALSE;},效果如图:注意excel保存时需要添加“comdef.h”头文件。
到此为止,excel在MFC中的配置环境已完成。
接下来添加一个按键,用于保存成excel文档,按键对应的程序如下:在对应(需要操作excel的)的CPP文件前加#include"comdef.h"_Application ExcelApp;Workbooks workbooks;_Workbook workbook;Worksheets sheets;_Worksheet sheet;Range range;if(!ExcelApp.CreateDispatch("Excel.Application",NULL)){AfxMessageBox("创建Excel服务失败!");}//创建Excel2000服务器(启动Excel)ExcelApp.SetVisible(false);workbooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);//用来锁定对应的工作簿workbook.AttachDispatch(workbooks.Add(COleVariant((_bstr_t)CString(). AllocSysString())));//得到Worksheetssheets.AttachDispatch(workbook.GetWorksheets(),true);sheet.AttachDispatch(sheets.GetItem(_variant_t("Sheet1")),true);//得到全部Cells,此时,range是cells的集合.range.AttachDispatch(sheet.GetCells(),true);//设置1行2列的单元的值range.SetItem(_variant_t((long)1),_variant_t((long)2),_variant_t("This Is A Excel Test Program!"));TCHAR szPath[MAX_PATH];::GetCurrentDirectory(MAX_PATH,szPath);CString strPath(szPath);strPath+=_T("\\test.xlsx");sheet.SaveAs(strPath,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);ExcelApp.SetVisible(true);ExcelApp.ReleaseDispatch();workbooks.ReleaseDispatch();workbook.ReleaseDispatch();sheets.ReleaseDispatch(); sheet.ReleaseDispatch();Excel的数据读取:运用在MSDN中的示例函数(具体函数见excel文档创建示例4):根据顺序,依次从系统中获取app、books、book、sheets、sheet、range、对象,然后获取路径strpath。
mfc 教程

mfc 教程MFC(Microsoft Foundation Classes)是一种用于开发Windows应用程序的C++框架,由Microsoft推出。
它提供了一系列的类和函数,简化了Windows编程的复杂性,使开发人员可以更轻松地创建各种功能强大且交互性良好的应用程序。
MFC教程的目的是帮助初学者了解MFC的基本概念和使用方法,以便能够利用MFC框架开发自己的Windows应用程序。
本教程将介绍MFC的主要组成部分、常用类以及一些常见的编程技巧,帮助读者快速上手。
第一部分将介绍MFC的基本概念和架构。
我们将了解MFC是如何工作的,包括应用程序对象、文档/视图体系结构和消息映射等主要概念。
我们还将学习如何创建一个简单的MFC应用程序,并进行窗口的创建和管理。
第二部分将深入介绍MFC的常用类。
我们将重点介绍窗口类和控件类,包括CWnd、CFrameWnd、CDialog、CButton等。
我们将学习如何使用这些类创建窗口、控件,并处理用户输入事件。
我们还将讨论一些常见的绘图和动画技术,如GDI绘图和使用定时器实现动画效果。
第三部分将介绍MFC的高级特性和编程技巧。
我们将学习如何使用MFC的文档/视图体系结构创建多文档应用程序,并进行文档的管理和视图的同步更新。
我们还将介绍如何通过自定义类和重载消息处理函数来实现定制化的功能。
此外,我们还将讨论一些高级主题,如线程编程和网络编程。
最后,本教程还将介绍一些常见的MFC开发工具和资源。
我们将介绍MFC的IDE(集成开发环境)和调试工具,并提供一些常用的网站和论坛供读者进一步学习和交流。
总结起来,本教程将帮助读者掌握MFC的基本概念和编程技巧,并能够利用MFC框架开发自己的Windows应用程序。
我们将通过实例和演示代码来讲解,帮助读者理解和应用所学知识。
阅读本教程后,读者将具备一定的MFC编程基础,并能够进一步深入研究和应用MFC框架。
希望本教程能够对MFC初学者有所帮助,让他们更加轻松地学习和掌握MFC编程。
MFC使用教程范文

MFC使用教程范文MFC(Microsoft Foundation Classes)是微软公司为Windows操作系统开发的一套面向对象的应用程序框架,用于简化Windows应用程序的开发过程。
MFC提供了一系列的类和函数,开发者可以利用这些类和函数来创建、管理和控制Windows应用程序。
本文将为您介绍MFC的基本使用方法和步骤。
一、MFC的基本概念和组成MFC是建立在Windows API之上的一层封装,它提供了一系列的类和函数,开发者可以利用这些封装好的类和函数来开发Windows应用程序。
MFC的组成包括:应用程序类、窗口类、对话框类和视图类。
1.应用程序类:MFC的应用程序类是整个应用程序的入口点,它包含了应用程序的初始化和销毁过程,以及主消息循环。
2.窗口类:窗口类用于创建和管理应用程序中的窗口,包括主窗口、子窗口和对话框等。
3.对话框类:对话框类用于创建和管理应用程序中的对话框,对话框是一种特殊的窗口,用于和用户进行交互。
4.视图类:视图类用于创建和管理应用程序中的视图,视图是应用程序中显示数据的区域。
二、MFC应用程序的创建步骤下面将介绍MFC应用程序的创建步骤。
1. 打开Visual Studio IDE,并选择"创建新项目"。
2.在"创建新项目"对话框中,选择"C++"->"MFC",点击"下一步"。
3.在"应用程序信息"对话框中,填写应用程序的名称和位置等信息,点击"完成"。
4. Visual Studio将自动创建一个MFC应用程序模板,并打开主窗口的代码和界面文件。
5.在主窗口的代码文件中,可以编写处理消息和事件的代码。
6.在主窗口的界面文件中,可以通过拖拽控件来设计应用程序的界面。
7.编译并运行应用程序,查看效果。
三、MFC应用程序的消息处理MFC应用程序中的消息处理是通过重载消息处理函数来实现的。
MFC控件使用详细教程

MFC控件使用详细教程MFC(Microsoft Foundation Class)是微软推出的一套用于开发Windows应用程序的类库。
它提供了许多方便易用的控件,可以快速创建用户界面。
本教程将详细介绍如何使用MFC控件来创建Windows应用程序。
第一步:创建一个MFC应用程序项目要使用MFC控件,首先需要创建一个MFC应用程序项目。
在Visual Studio中,选择"文件"->"新建"->"项目",然后选择"MFC应用程序"模板。
在项目设置中,可以选择使用对话框或视图来作为应用程序的主界面。
第二步:设置控件属性第三步:添加控件消息处理程序控件不仅仅可以显示在界面上,还可以响应用户的操作。
例如,当用户点击按钮时,可以执行一些特定的操作。
要实现这个功能,需要添加控件消息处理程序。
可以通过右键单击控件,选择"添加事件处理程序"来添加控件消息处理程序。
在生成事件处理程序的对话框中,可以选择控件的事件(如点击事件、鼠标移动事件等)和消息的处理函数。
在消息处理函数中,可以编写代码来实现特定的功能。
第四步:编写控件的功能代码在控件的消息处理函数中,可以使用MFC类库提供的函数来实现控件的功能。
例如,如果用户点击了按钮控件,可以使用CButton类的GetWindowText函数来获取按钮的文本,并使用CMessageBox类的MessageBox函数来显示一个消息框。
可以使用类似的方式来处理其他控件的事件。
例如,当用户选择了一个列表框中的项时,可以使用CListBox类的GetCurSel函数来获取选择的项的索引,并根据索引来执行特定的操作。
第五步:编译和运行应用程序完成了控件的添加和功能编写后,可以使用Visual Studio的编译和运行功能来编译和运行应用程序。
在编译过程中,会生成可执行文件和相关的依赖文件。
mfc list control简单使用说明

mfc list control简单使用说明MFC(Microsoft Foundation Classes)是Microsoft提供的一个C++面向对象的应用程序框架,用于开发Windows应用程序。
MFC的List Control是其中一个常用的控件,用于展示和管理数据列表。
使用MFC List Control之前,需要先创建一个对话框或视图类,并在资源编辑器中添加一个List Control控件。
我们可以通过以下几个步骤简单地使用MFC List Control控件:1. 设置列标头:使用InsertColumn函数,我们可以设置List Control的列标头。
例如,如果我们想要一个包含“姓名”和“年龄”的列表,可以这样做:```cppm_listCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 100);m_listCtrl.InsertColumn(1, _T("年龄"), LVCFMT_LEFT, 100);```2. 添加数据项:使用InsertItem函数,我们可以在List Control中添加数据项。
每个数据项将代表列表中一行的数据。
例如,我们可以这样添加一个名为“张三”,年龄为25的数据项:```cppint nIndex = m_listCtrl.InsertItem(0, _T("张三"));m_listCtrl.SetItemText(nIndex, 1, _T("25"));```3. 更改数据项内容:使用SetItemText函数,我们可以修改List Control中数据项的内容。
例如,如果我们想修改“张三”的年龄为30,可以使用以下代码:```cppm_listCtrl.SetItemText(nIndex, 1, _T("30"));```4. 删除数据项:使用DeleteItem函数,我们可以删除List Control中的数据项。
VS2010之MFC入门到精通教程(1-55全部)

VS2010/MFC编程入门教程之目录第一部分:VS2010/MFC开发环境VS2010/MFC编程入门之前言VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)第二部分:VS2010-MFC应用程序框架VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)VS2010/MFC编程入门之四(MFC应用程序框架分析)VS2010/MFC编程入门之五(MFC消息映射机制概述)第三部分:对话框VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)VS2010/MFC编程入门之七(对话框:为对话框添加控件)VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数)VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)VS2010/MFC编程入门之十六(对话框:消息对话框)VS2010/MFC编程入门之十七(对话框:文件对话框)VS2010/MFC编程入门之十八(对话框:字体对话框)VS2010/MFC编程入门之十九(对话框:颜色对话框)第四部分:常用控件VS2010/MFC编程入门之二十(常用控件:静态文本框)VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control)VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control)VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下)VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上)VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)第五部分:菜单、工具栏与状态栏VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类)VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)VS2010/MFC编程入门之三十八(状态栏的使用详解)第六部分:文档、视图和框架VS2010/MFC编程入门之三十九(文档、视图和框架:概述)VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)第七部分:MFC常用类VS2010/MFC编程入门之四十二(MFC常用类:CString类)VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类)VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer)VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类)VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理)第八部分:字体和文本输出VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类)VS2010/MFC编程入门之四十八(字体和文本输出:文本输出)第九部分:图形图像VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)第十部分:Ribbon界面开发VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)VS2010/MFC编程入门之前言鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
mfc使用手册

mfc使用手册MFC(Microsoft Foundation Class Library)是微软提供的一个类库,用于简化Windows应用程序的开发过程。
以下是MFC使用手册的简要介绍:1. 简介:MFC是一个基于C++的类库,它提供了许多用于构建Windows应用程序的类和函数。
通过使用MFC,开发人员可以快速地构建具有一致外观和感觉的应用程序,并利用Windows平台提供的各种功能。
2. 安装和配置:在开始使用MFC之前,您需要安装Microsoft Visual Studio并确保安装了MFC开发工作负载。
安装完成后,您需要创建一个新的MFC项目或打开一个现有的MFC项目。
3. 创建MFC应用程序:要创建一个新的MFC应用程序,您需要使用Microsoft Visual Studio的向导。
选择“File”菜单中的“New”选项,然后选择“Project”。
在弹出的对话框中,选择“MFC Application”并按照向导的提示完成应用程序的创建过程。
4. MFC类库:MFC提供了许多用于构建应用程序的类和函数。
以下是一些常用的MFC类:CWinApp:应用程序对象类,用于管理应用程序级别的操作,例如初始化应用程序和退出应用程序。
CWnd:窗口类,用于管理窗口的各种操作,例如创建窗口、处理消息和绘制窗口。
CDocument:文档类,用于管理应用程序中的文档数据。
CView:视图类,用于管理应用程序中的视图,例如显示文档数据和与用户交互。
5. MFC消息处理:MFC使用消息传递机制来处理用户与应用程序的交互。
每个窗口和控件都处理一组预定义的消息,例如鼠标点击、键盘输入和窗口大小改变等。
通过覆盖类中的虚函数,您可以定义应用程序如何响应这些消息。
6. MFC对话框和控件:MFC提供了许多内置的对话框和控件,例如按钮、文本框和列表框等。
您可以使用对话框编辑器来创建对话框,并将控件拖放到对话框中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
01章用向导创建文档窗口MFC教程是小雅最怕写的内容,除了水平问题之外,还有一点就是,MFC将许多程序封装起来,使众多程序员在编程时,即使编出了程序,也不知究竟为什么这样就可以了。
这一现象使小雅想到当今的Java程序员,许多人在开发外包项目时,因为整个FrameWork已经建成,自己只是担当其中一部分功能,出了BUG之后,找原因非常困难。
在SDK教程中,小雅将各种功能进行详细解说,而MFC教程中,只是用例子来讲解MFC的原理,学会原理之后,就会感到MFC比SDK编程省了许多事。
小雅在SDK 教程中,为了讲明API功能,用的方法都是C语言的方法,而MFC用的全是C++的内容,因此,学习MFC必须对C++有较深的了解,不会C语言、C++语言而能够学会MFC的人只能是吹牛。
小雅的“C语言教程”和“C++语言教程”都是按照标准C/C++来写的,在Unix、Linux、Windows都适用,这是很重要的基础。
SDK教程主要是让初学者明白WindowsAPI的功能,以及程序的实现方法,基本上是“C语言+ API”,而MFC基本上是“C++ + API”。
SDK编程和MFC是可以相互转化,相互调用的,因为MFC封装了绝大部分API,但不是所有的API函数。
注意:SDK并不是只能用C语言来写,用C++一样编程,小雅在作教程时为了把内容说清楚,同时兼顾不会C++的人员才使用C语言。
对于初学者,小雅建议在C/C++的基础上用MFC来编程,一是省去了很多编程,二是用上了C++的面向对象编程的思想。
当今要找一个C++的项目来一边做一边学是很困难的。
小雅自己也一直想找一个C++的工作而未能如愿。
通过学习MFC再反过来加强一下学的不是很深的C++,不是很好的一个方法吗?不过,MFC和SDK与C/C++不同点在消息事件处理方面,初学者要学会这一内容。
关于“”有“托管”和“非托管”二种编程方式,小雅的SDK教程和MFC 教程全部是“非托管”编程,也就是传统编程。
微软自己说“托管”方式是为传统编程人员的过渡,既然是过渡的产物,小雅也就不去浪费时间精力去写这种教程了,如果想用“托管”编程,还不如直接用C#或。
一、创建一个单文档窗口MFC编程很大程度上要借助于集成环境中的各种工具,下面我们也通过工具来生成一个基本的窗口程序,再通过这个程序来了解MFC的各主要的类、基本类,学会图标、菜单、资源视图、类视图、解决方案资源管理器、对象浏览器的使用。
创建一个单文档窗口的步骤是:∙用菜单的“文件”→“新建”→“项目”打开“新建项目”对话框。
∙在“新建项目”对话框中分别选择设置①类型为“Visual C++ 项目”、②“MFC”、③模板为“MFC应用程序”、④名称为“Test”⑤位置为“C:\MFC”。
其中④和⑤可自由设定。
最后按“确定”按钮进入“MFC 应用程序向导”对话框。
在“MFC应用程序向导”对话框中,①选择菜单“应用程序类型”、②选择“单文档”选项。
最后按“完成”按钮结束。
二、生成后的文件的作用生成的文件的作用可以在ReadMe.txt便可知道。
当然,后面章节中小雅将对每一部分详细剖析。
02章用向导创建对话框窗口一、应用程序的窗口种类Windows应用程序的窗口类型主要有二种即文档类型(Document)和对话框类型(Dialog),通常说的表单类型(Form)是介于这2种类型之间,主要是对话框类型。
、C#等主要就是这种表单类型的窗口,实现起来相当简单。
文档类型的应用程序的界面,大部分区域用于文字或画图等读写操作,常见的有Word、Excel、写字板等。
文档类型的窗口又分单文档和多文档2种类型。
所谓多文档类型就是在一个窗口框架内有多个子窗口,常见的有Word、Excel、当前编写VC++的IDE等。
单文档类型当然就不可能有多个子窗口了,常见的有附件中的写字板、画图等。
文档类型的窗口的编程相对对话框来说要复杂得多,是我们学习的主要对象。
对话框类型的界面中使用了很多控件,输入输出主要是针对控件,常见的有计算器、音量控制等。
编程相对比较简单,另外公共对话框也是这种类型,不过不需要任何编程,因为这些是操作系统的东西,只调用就可以了。
对话框类型是日常我们编程用的最多的,也就是表单类型。
另外,对话框类型也可以象文档类型一样进行文字、画图等处理,而文档类型窗口中同样也可以使用控件。
对于文档窗口一般可以改变大小,并且有滚动条,背景多数为白色。
而对话框窗口的大小一般是固定的,背景一般是淡灰色,没有滚动条,通常有OK、Cancel 等按钮。
要注意,对话框窗口有模态和非模态2种类型。
所谓模态对话框就是当前对话框不关闭,就不能切换到调用该对话框的父窗口;而所谓非模态窗口就是不关闭当前对话框,也同样可以切换到调用该对话框的父窗口。
绝大多数对话框都是模态方式,非模态方式比较少,例如集成环境中按Ctrl+F弹出的“查找”对话框就是非模态方式。
二、创建一个基于对话框的窗口在上一章生成单文档应用程序的最后一步中,选择“基于对话框”后再按“完成”按钮。
三、阅读原程序的方法下面,我们要学会用用四种工具来查看或修改生成好的程序。
①解决方案资源管理器(以前称为项目管理器);②类视图;③资源视图;④属性。
“解决方案资源管理器”中显示项目中的所有文件,如果要删除一个既存的程序,或添加一个新程序或头文件等,都是利用这个工具来完成。
“资源视图”中包含菜单、鼠标光标、对话框、图标、工具条、字符串常量表、版本信息表、快捷键、HTML等,在“解决方案资源管理器”中鼠标双击后缀为rc的文件便可打开“资源视图”。
添加、修改、删除“资源”都是在“资源视图”中操作。
这些“资源”文件其实都是文本文件,内容基本上是资源的定义(图标等除外),完全可以直接手动编写,但手动编写既容易出错,也不方便。
另外,对话框的设计还需要和“属性”工具一起使用,这些都是微软Visual Studio集成工具的基本使用常识,MFC教程中不再详细叙述。
“类视图”是学习MFC最重要的工具,小雅认为初学者要学会或者说习惯这个工具的使用。
一个很简单的程序,经过MFC生成之后,便是一个“庞大”的程序,初学者如果一行一行地去读,往往头晕目眩,越看越烦。
而通过“类视图”从整体上来分析,能很好地把握整个的设计思路,通过“类视图”能很准确地定位到你想编程的“位置”。
例如,添加类成员变量或成员函数,消息处理等,利用工具,多个地方的程序将被同进更新。
通过“类视图”还可以很方便地看到父类的全部信息,从而了解当前的类还有哪些功能可以使用。
同时可以看到想相关类的全部信息。
这比Java的集成环境(如:Websphere等)不知要方便多少倍。
“属性”使用该窗口查看和更改位于编辑器和设计器中的选定对象的设计时属性及事件。
也可以使用“属性”窗口编辑和查看文件、项目及解决方案属性。
“属性”窗口显示编辑字段的不同类型,这取决于特定属性的需要。
这些编辑字段包括编辑框、下拉列表以及到自定义编辑器对话框的链接。
属性以灰色显示且是只读的。
03章初始大小、标题和图标的改变一、直接修改现有图标在上一章生成的基础上,打开资源视图,选择唯一的图标“IDR_MAINFRAME”双击,然后将图标“擦除”,画一个自己喜欢的图形并保存。
“Ctrl+F5”重新编译生成运行,你将会和小雅一样惊奇地发现,运行出来的程序的图标并没有改变。
小雅是个喜欢钻牛角尖的人,将源程序前前后后地研究了很长时间,未得其解,只好不耻下问。
身边的人问了、论坛上也发贴了,仍未找到答案。
不免有几句牢骚,中国许多人在招聘时个个都说自己能力很强,问他会不会VC++,他会举出很多做过VC++的项目,进了单位之后,让他编一个很简单的程序,费了九牛二虎之力生成一堆废代码。
如果给他一个sample的话,倒能发挥发挥。
这种现象决不是小雅有意要攻击哪个人,在国内如此,在国外更是如此。
而许多编程人员,明明技术很差,却个个自以为了不起,一点没有想学的念头。
不仅如此,许多人都象穷疯了一样,都想通过一两次生意、或一两年奋斗来“暴发”一下。
这种好大喜功的心理在中国很普遍,国家领导也将经济增长的数目作为政绩,而不注重实实在在的技术、生产能力,靠出卖廉价劳动带来的经济增长,这有什么好吹的。
那么原因出在哪儿呢,原因出在MFC生成的图标上,我们自己新建一个图标,无论怎样画大小也只有1K左右,而MFC生成的图标竟有22K之多。
小雅将MFC生成的图标一个象素一个象素地在新建的图标上画了一遍,大小也只有1K左右,新画的图标在Windows的资源管理器里面,无论大图标还是小图标,画错了的地方都能立即显示出来,而MFC生成的图标,无论怎样修改,在Windows的资源管理器里面,无论大图标还是小图标都没有任何改变。
小雅知识有限,对图象方面了解不多,记得看过一篇文章,介绍如何通过调色板控制BMP,使其颜色不能被修改。
图标也应该有类似的功能,小雅既然不会,就介绍一下更换图标的笨方法。
这个笨办法对第1章和第2章生成的程序都适用。
1.在资源视图中“Icon”下选择“IDR_MAINFRAME”图标,然后用“Delete”键删除。
2.在Windows的资源管理器里面,打开当前项目下的“res”子目录,删除相应的图标文件。
3.在资源视图中“~.rc”下,用右键菜单的“插入资源(A)...”,然后在对话框中选择“Icon”新建一个图标。
4.在属性工具中,将新建的图标的ID改为“IDR_MAINFRAME”(默认为“IDI_ICON1”)。
5.在属性工具中,将新建的图标的Filename改为上面删除的文件名。
注意应保存在“res”子目录下。
如果你事先已经有一个自己的图标,那最简单了,在VC++中什么也不需要修改,直接在资源管理器里面将那个22K的图标文件删除,然后用你自己的图标换成被删除的文件名。
二、改变窗口的标题和初始大小在资源视图中打开“String Table”,IDR_MAINFRAME的值为“test2\n\ntest2\n\n\ntest2.Document”,将之改为:“yaer\n小雅\ntest2\n\n\ntest2.Document”,窗口的标题就改完了。
初始大小的更改,对于第2章生成的基于对话框的程序来说很简单,只要在资源视图中选择主窗口后打开,直接用鼠标改变大小就可以了。
对于第1章生成的文档类程序不忙于修改,先用类视图来看一下MFC生成的单文档程序和对话框程序的类有什么相同和不同。
修改窗口的初始大小在CMainFrame类的PreCreateWindow()成员函数中,通过修改 CREATESTRUCT cs 来修改窗口类或样式。
三、框架类、文档类、视图类的关系框架类主要处理窗口的类型、边框、位置、大小以及子窗口(对于多文档来说)等内容,工具条、状态条也是这个类的成员变量。