VS2010MFC编程入门之四十五(MFC常用类:CFile文件操作类)

合集下载

VS2010-MFC编程入门

VS2010-MFC编程入门

VS2010/MFC编程入门之前言分类标签: 编程入门VC++VS2010MFC鸡啄米的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是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。

VC++版本的选择:VS2010因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6. 0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。

近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。

VS2010MFC编程入门之四(MFC应用程序框架分析)

VS2010MFC编程入门之四(MFC应用程序框架分析)

上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟C++编程入门系列中的例程差别太大。

这一节鸡啄米就为大家分析下MFC应用程序框架的运行流程。

一.SDK应用程序与MFC应用程序运行过程的对比程序运行都要有入口函数,在之前的C++教程中都是main函数,而Windows应用程序的入口函数是WinMain函数,MFC程序也是从WinMain函数开始的。

下面鸡啄米就给出用Windows SDK写的“HelloWorld”程序,与应用程序框架进行对比,这样能更好的了解框架是怎样运行的。

Windows SDK开发程序就是不使用MFC类库,直接用Windows AP I函数进行软件开发。

鸡啄米不是要讲解SDK开发,只是为了对比而简单介绍,至于SDK 开发可以在大家学完MFC以后选择是否要研究,一般来说有简单了解就可以了。

SDK应用程序首先,给出Windows SDK应用程序“HelloWorld”的源码:上面的程序运行的流程是:进入WinMain函数->初始化WNDCLASSEX,调用Regist erClassEx函数注册窗口类->调用ShowWindow和UpdateWindow函数显示并更新窗口->进入消息循环。

关于消息循环再简单说下,Windows应用程序是消息驱动的,系统或用户让应用程序进行某项操作或完成某个任务时会发送消息,进入程序的消息队列,然后消息循环会将消息队列中的消息取出,交予相应的窗口过程处理,此程序的窗口过程函数就是my WndProc函数,窗口过程函数处理完消息就完成了某项操作或任务。

本例是要显示“HELL O WORLD”字符串,UpdateWindow函数会发送WM_PAINT消息,但是此消息不经过消息队列而是直接送到窗口过程处理,在窗口过程函数中最终绘制了“HELLO WORLD”字符串。

MFC应用程序下面是MFC应用程序的运行流程,通过MFC库中代码进行分析:首先在HelloWorld.cpp中定义全局对象theApp:CHelloWorldApp theApp;。

MFC编程基础教程

MFC编程基础教程

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.对话框控件的操作:对话框中的控件可以像其他控件一样进行操作。

VS2010和MFC编程入门之42(MFC常用类:CString类)

VS2010和MFC编程入门之42(MFC常用类:CString类)

VS2010MFC编程入门之四十二(MFC常用类:CString类)理解了分割窗口的有关知识,这里开始讲解MFC的一些常用类,先来说说CString类。

CString类简介CString类作为MFC的常用类,当之无愧。

可以这样说,只要是从事MFC开发,基本都会遇到使用CString类的场合。

因为字符串的使用比较普遍,而CString类又提供了对字符串的便捷操作,所以它给MFC开发人员带来了高的开发效率,受到了开发者的欢迎。

大家使用VS2010的话,可能会见到CStringT,实际上它是一个操作可变长度字符串的模板类。

CStringT模板类有三个实例:CString、CStringA和CStringW,它们分别提供对TCHAR、char和wchar_t字符类型的字符串的操作。

char类型定义的是Ansi字符,wchar_t类型定义的是Unicode字符,而TCHAR取决于MFC工程的属性对话框中的Configuration Properties->General->Character Set属性,如果此属性为Use Multi-Byte Character Set,则TCHAR类型定义的是Ansi字符,而如果为Use Unicode Character Set,则TCHAR类型定义的是Unicode字符。

三个字符串类的操作是一样的,只是处理的字符类型不同。

鸡啄米以CString类为讲解对象。

CString类的字符串操作1. CString类的构造函数CString类有很多构造函数,这里只介绍几个比较常用的:CString(constCString&stringSrc);将一个已经存在的CString对象stringSrc的内容拷贝到该CString对象。

例如:C++代码CString str1(_T("")); // 将常量字符串拷贝到str1 CString str2(str1); // 将str1的内容拷贝到str2CString(LPCTSTR lpch, intnLength);将字符串lpch中的前nLength个字符拷贝到该CString对象。

mfc cfile用法

mfc cfile用法

mfc cfile用法
MFC的CFile类是一个用于文件输入输出操作的核心类之一。

它提供了一系列的方法,用于打开、关闭、读取、写入和定位文件内的数据。

首先,我们需要创建一个CFile对象来表示我们想要操作的文件。

可以通过构造函数来实现,例如:
CFile myFile;
然后,我们可以使用Open方法来打开文件。

这个方法需要指定文件名以及打开的模式(如读取、写入、追加等)。

例如:myFile.Open(L"myfile.txt", CFile::modeRead);
读取文件内容可以使用Read方法。

该方法需要指定一个缓冲区和希望读取的字节数。

例如,我们可以创建一个大小为100的字符数组,来读取文件中的数据:
char buffer[100];
myFile.Read(buffer, 100);
写入文件内容可以使用Write方法。

该方法需要指定一个缓冲区和希望写入的字节数。

例如,我们可以将一个字符串写入文件中:char* str = "Hello, world!";
myFile.Write(str, strlen(str));
最后,我们需要关闭文件来释放资源。

可以使用Close方法来实现:
myFile.Close();
除了上述基本的文件操作外,CFile还提供了其他一些有用的方法,比如Seek用于文件指针的定位、GetLength用于获取文件的长度等。

总之,通过使用MFC的CFile类,我们可以方便地进行文件的读写操作。

希望这篇文章能帮助您快速了解和掌握CFile的用法。

CFile操作详解

CFile操作详解

CFile操作详解详解, CFile各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。

本文将对VisualC++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。

1.文件的查找当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。

MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。

下面这段代码演示了这个类的最基本使用方法。

CString strFileTitle;CFileFind finder;BOOL bWorking = finder.FindFile("C:\\windows\\sysbkup\\*.cab");while(bWorking){bWorking=finder.FindNextFile();strFileTitle=finder.GetFileTitle();}2.文件的打开/保存对话框让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。

MFC的类CFileDialog用于实现这种功能。

使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。

在构造CFileDialog对象时,如果在参数中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。

此时要重点注意为此CFileDialog对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。

下面这段程序演示了文件打开对话框的使用方法。

CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,"All Files (*.*)|*.*||",AfxGetMainWnd());CString str(" ",10000);mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000);str.ReleaseBuffer();POSITION mPos=mFileDlg.GetStartPosition();CString pathName(" ",128);CFileStatus status;while(mPos!=NULL){pathName=mFileDlg.GetNextPathName(mPos);CFile::GetStatus( pathName, status );}3.文件的读写文件的读写非常重要,下面将重点进行介绍。

cfile类的用法

cfile类的用法

cfile类的用法Cfile类是MFC中的一个文件操作类,它提供了一系列的方法来对文件进行读写操作。

本文将详细介绍Cfile类的用法,包括创建、打开、读取、写入、关闭文件等操作。

一、创建文件在使用Cfile类进行文件操作之前,需要先创建一个文件对象。

可以通过以下方式来创建一个文件对象:CFile file;此时,file对象并没有与任何实际的文件关联。

如果要将其与一个实际的文件关联,需要调用Create方法:BOOL Create(LPCTSTR lpszFileName, UINT nOpenFlags);其中,lpszFileName表示要创建或打开的文件名;nOpenFlags表示打开方式,可以是以下任意一种或多种:1. CFile::modeRead:以只读方式打开文件。

2. CFile::modeWrite:以只写方式打开文件。

3. CFile::modeReadWrite:以读写方式打开文件。

4. CFile::shareDenyNone:不阻止其他进程对该文件进行访问。

5. CFile::shareDenyWrite:阻止其他进程对该文件进行写访问。

6. CFile::shareExclusive:阻止其他进程对该文件进行任何访问。

7. CFile::shareDenyRead:阻止其他进程对该文件进行读访问。

示例代码如下:CFile file;if(file.Create(_T("test.txt"),CFile::modeCreate|CFile::modeWrite)) {// 文件创建成功}else{// 文件创建失败二、打开文件如果要打开一个已经存在的文件,可以使用Open方法:BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);其中,lpszFileName表示要打开的文件名;nOpenFlags表示打开方式,可以是以上所述的任意一种或多种;pError用于接收异常信息。

讲座四 VS2010(MFC)编程--几种常见对话框

讲座四 VS2010(MFC)编程--几种常见对话框

VS2010(MFC)编程--几种对话框VS2010/MFC编程:模态对话框及其弹出过程加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有些了解了,有个好的开始对于以后的学习大有裨益。

趁热打铁,这一节讲讲什么是模态对话框和非模态对话框,以及模态对话框怎样弹出。

一.模态对话框和非模态对话框Windows对话框分为两类:模态对话框和非模态对话框。

模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。

非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。

非模态对话框一般用来显示提示信息等。

大家对Windows系统很了解,相信这两种对话框应该都遇到过。

之前的加法计算器对话框其实就是模态对话框。

二.模态对话框是怎样弹出的毕竟加法计算器程序大部分都是MFC自动生成的,对话框怎么弹出来的大家可能还不是很清楚。

下面简单说说它是在哪里弹出来的,再重新建一个新的对话框并弹出它,这样大家实践以后就能更灵活的使用模态对话框了。

大家打开Addition.cpp文件,可以看到CAdditionApp类有个InitInstance()函数,在MFC应用程序框架分析中提到过此函数,不过那是单文档应用程序App类中的,函数体不太相同,但都是进行App类实例的初始化工作。

InitInstance()函数的后半部分有一段代码就是定义对话框对象并弹出对话框的,下面给出这段代码并加以注释:C++代码弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。

CDialog::DoModal()函数的原型为:virtual INT_PTR DoModal();返回值:整数值,指定了传递给CDialog::EndDialog(该函数用于关闭对话框)的nResult 参数值。

如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。

MFC入门教程范文

MFC入门教程范文

MFC入门教程范文MFC(Microsoft Foundation Classes)是微软公司为Windows操作系统开发的一套C++类库,用于快速开发Windows应用程序的框架。

MFC 提供了丰富的类和函数,可以用来创建窗口、对话框、按钮等控件,并实现与用户的交互。

本文将为你介绍MFC的基本概念和一些常用的操作。

一、MFC的基本概念1. 窗口类(CWnd):MFC中的窗口类是所有控件和对话框的基类,它提供了创建和管理窗口的功能。

2. 控件类(CButton、CEdit等):MFC提供了各种控件类,用于创建和管理各种窗口控件,如按钮、文本框、列表框等。

3. 对话框类(CDialog):对话框是一种特殊的窗口,用于显示用户界面和处理用户输入。

MFC提供了对话框类,用于创建和管理对话框。

4. 消息映射(Message Map):MFC中的消息映射是一种将窗口消息与相应函数关联起来的机制。

通过消息映射,可以方便地处理各种用户输入事件,比如鼠标点击、键盘按键等。

二、MFC的基本操作1. 创建一个MFC应用程序:打开Visual Studio,选择"创建新项目",在向导中选择"MFC应用程序",填写项目名称和保存路径,点击"确定"完成创建。

在进行项目设置时,可以选择要使用的MFC版本和应用程序类型。

2. 创建窗口:在MFC应用程序中,可以使用CWnd类的Create函数来创建一个窗口。

首先定义一个CWnd对象,调用Create函数指定窗口样式、位置和大小等参数,最后调用ShowWindow函数显示窗口。

3. 创建控件:在MFC应用程序中,可以使用各种控件类来创建窗口控件。

首先定义一个控件类对象,调用Create函数指定控件样式、位置和大小等参数,最后调用ShowWindow函数显示控件。

4.处理消息:在MFC应用程序中,可以通过重写消息处理函数来处理各种用户输入事件。

mfc文件操作CFile类之创建文件的方法

mfc文件操作CFile类之创建文件的方法

mfc⽂件操作CFile类之创建⽂件的⽅法mfc⽂件操作类CFileCFile类的⼏种构造函数CFile();//不带参数的构造函数。

CFile(int hFile);//带⽂件句柄参数的构造函数。

CFile(LPCTSTR lpszFileName,//要打开的⽂件路径UINT nOpenFlage //打开⽂件时的共享和访问模式);//带⽂件路径和打开⽅式的构造函数除了⽤构造函数打开⽂件外还可以⽤CFile类的成员函数Open来打开OPen函数原型virtual BOOL Open(LPCTSTR lpszFilename,//打开⽂件的路径,可以是绝对路径,也可以是相对路径。

UINT nOpenFlags, //打开⽂件时的共享和访问模式。

CFileException *pError=NULL//打开⽂件的异常捕获变量);CFile构造函数和CFile成员函数Open的参数nOpenFlage 可以是以下任意组合(使⽤位或|组合):CFile::modeCreate新建⽂件,如果⽂件已存在,则清空⽂件长度。

CFile::modeNotruncate与modeCreate组合使⽤。

如果创建的⽂件已经存在,则打开已存在的⽂件,不存在则新建⽂件。

CFile::modeRead以只读⽅式打开⽂件。

CFile::modeWrite以只写⽅式打开⽂件。

CFile::modeNoInherit阻⽌⽂件从⼦进程中继承。

CFile::shareDenyNone共享读写的打开⽂件。

CFile::shareDenyRead排它读权限打开⽂件。

CFile::shareDenyWrite排它写权限打开⽂件。

CFile::shareExclusive排它模式打开⽂件。

CFile::typeText⽂本模式打开⽂件。

CFile::typeBinary⼆进制以写模式打开该⽂件。

创建⽂件并打开⽰例:void CMFCApplication42Dlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码CString filename = _T("C:\\Users\\Administrator\\Desktop\\test.txt"); //定义⽂件名TRY //异常处理{CFile f(filename, CFile::modeCreate | CFile::modeWrite);}CATCH (CFileException, e)//异常触发{#ifdef _DEBUG //如果是调试模式afxDump << "打开⽂件失败" << e->m_cause << "\n";#endif}END_CATCH}总结以上所述是⼩编给⼤家介绍的mfc⽂件操作CFile类之创建⽂件的⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问欢迎给我留⾔,⼩编会及时回复⼤家的!。

VS2010MFC入门到精通教程(1-55全部)

VS2010MFC入门到精通教程(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编程基础教程
MFC(Microsoft Foundation Class)是一套用于Windows平台下GUI应用程序开发的C++类库。

它是微软公司为了简化Windows应用程序开发而开发的,提供了许多可以直接调用的类和函数,可以方便地进行窗口管理、控件操作、消息处理等操作。

首先,窗口的创建是MFC编程的基础。

在MFC中,窗口的创建是通过派生CWnd类来实现的。

通过调用CWnd类的Create函数,可以创建一个窗口,并指定窗口的样式、位置、大小等信息。

另外,MFC还提供了一个CFrameWnd类,用于创建带有菜单和工具栏的主窗口。

消息处理是MFC编程中的关键环节。

在MFC中,每个窗口都有一个消息映射表,用于将Windows消息与相应的处理函数关联起来。

当窗口接收到消息时,MFC会自动调用相应的处理函数进行消息处理。

通过消息映射表,可以处理按钮点击、窗口关闭等各种消息。

菜单在MFC中也是常用的界面元素之一、菜单可以包含各种功能选项和子菜单。

MFC提供了一个CMenu类,用于创建和操作菜单。

通过CMenu 类的成员函数,可以实现菜单的创建、添加、删除和响应菜单项的点击等操作。

除了上述内容,MFC还包括了其他一些重要的特性,例如文件操作、多文档界面、打印和打印预览等。

这些特性使得MFC成为一个功能强大且灵活易用的开发框架。

综上所述,MFC编程基础教程主要包括窗口创建、控件操作、消息处理、对话框和菜单等内容。

通过学习这些基础知识,可以帮助初学者快速上手MFC编程,实现各种Windows平台下的GUI应用程序开发。

MFC下的文件类_CFile

MFC下的文件类_CFile

MFC下的文件类11.MFC下的文件类1.文件操作的方法使用Visual C++编程,有如下方法进行文件操作:(1)使用标准C运行库函数,包括fopen、fclose、fseek等。

(2)使用Win16下的文件和目录操作函数,如lopen、lclose、lseek等。

不过,在Win32下,这些函数主要是为了和Win16向后兼容。

(3)使用Win32下的文件和目录操作函数,如CreateFile,CopyFile,DeleteFile,FindNextFile,等等。

Win32下,打开和创建文件都由CreateFile完成,成功的话,得到一个Win32下的句柄,这不同于“C”的fopen返回的句柄。

在Win16下,该句柄和C运行库文件操作函数相容。

但在Win32下,“C”的文件操作函数不能使用该句柄,如果需要的话,可以使用函数_open_osfhandle从Win32句柄得到一个“C”文件函数可以使用的文件句柄。

关闭文件使用Win32的CloseHandle。

在Win32下,CreateFile可以操作的对象除了磁盘文件外,还包括设备文件如通讯端口、管道、控制台输入、邮件槽等等。

(4)使用CFile和其派生类进行文件操作。

CFile从CObject派生,其派生类包括操作文本文件的CStdioFile,操作内存文件的CmemFile,等等。

CFile是建立在Win32的文件操作体系的基础上,它封装了部分Win32文件操作函数。

最好是使用CFile类(或派生类)的对象来操作文件,必要的话,可以从这些类派生自己的文件操作类。

统一使用CFile的界面可以得到好的移植性。

2.MFC的文件类MFC用一些类来封装文件访问的Win32 API。

以CFile为基础,从CFile派生出几个类,如CStdioFile,CMemFile,MFC内部使用的CMiororFile,等等。

1.CFile的结构1.CFile定义的枚举类型CFile类定义了一些和文件操作相关的枚举类型,主要有四种:OpenFlags,Attribute,SeekPosition,hFileNull。

VS2010-MFC编程入门(续)

VS2010-MFC编程入门(续)

VS2010/MFC编程入门之三十八(状态栏的使用详解)上一节中鸡啄米讲了工具栏的创建、停靠与使用,本节来讲解状态栏的知识。

状态栏简介状态栏相信大家在很多窗口中都能见到,它总是用来显示各种状态。

状态栏实际上也是一个窗口,一般分为几个窗格,每个窗格分别用来显示不同的信息和状态等,如菜单项和工具栏按钮的提示信息。

用MFC向导生成的单文档或多文档程序都会自动创建状态栏,大家可以运行下VS20 10/MFC编程入门之三十四(菜单:VS2010菜单资源详解)中创建的Example34程序,在结果界面中可以看到窗口底部有个状态栏,该状态栏被分为了几个窗格,分别用来显示菜单项和工具栏按钮的提示信息及Caps Lock、Num Lock、Scroll Lock键的状态。

当然,我们可以自定义状态栏,加入新的提示信息或指示器。

CStatusBar类MFC为状态栏提供了CStatusBar类,封装了状态栏的属性和操作。

下面是CStatusBar类几个主要的成员函数:virtual BOOL Create(CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR);创建一个状态栏。

参数pParentWnd为状态栏父窗口的指针,参数dwStyle为状态栏的风格,除了标准的Windows风格外,它还支持:CBRS_TOP:位于框架窗口的顶部。

CBRS_BOTTOM:位于框架窗口的底部。

CBRS_NOALIGN:父窗口大小改变时状态栏不会被重新定位。

参数nID指定状态栏的ID。

BOOL SetIndicators(const UINT* lpIDArray, int nIDCount);为每个指示器设置显示文本,具体来说,就是用lpIDArray数组中的对应元素为每个指示器设置一个ID,然后加载每个ID代表的字符串,设置为这些指示器的显示文本。

MFCCFile类操作文件的方法

MFCCFile类操作文件的方法

MFCCFile类操作文件的方法当把结构逐个写入硬盘文件时,注意,结构中不能包含string变量类型,因为,string是不定长的变量类型。

应使用char xx[90]形式的变量,文件操作API和CFile类在VC中,操作文件的方法有两种,一是利用一些API函数来创建,打开,读写文件,另外一个是利用MFC的CFile类,CFile封装了对文件的一般操作。

下面酒主要介绍如何利用这两种方法操作文件。

1.创建或打开一个文件API函数CreateFile可打开和创建文件、管道、邮槽、通信服务、设备以及控制台,但是在此时只是介绍用这个函数怎么实现创建和打开一个文件。

HANDLE CreateFile(LPCTSTR lpFileName, // 要打开的文件名DWORD dwDesiredAccess, // 文件的操作属性DWORD dwShareMode, // 文件共享属性LPSECURITY_ATTRIBUTES lpSecurityAttributes,// 文件安全特性DWORD dwCreationDisposition, //文件操作DWORD dwFlagsAndAttributes, // 文件属性HANDLE hTemplateFile // 如果不为零,则指定一个文件句柄。

新文件将从这个文件中复制扩展属性);文件的操作属性:如果为零,表示只允许获取与一个设备有关的信息,GENERIC_READ 表示允许对设备进行读访问;如果为GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);文件的共享属性:零表示不共享;FILE_SHARE_READ 或FILE_SHARE_WRITE 表示允许对文件进行读/写共享访问文件的操作有:CREATE_NEW:创建文件;如文件存在则会出错CREATE_ALWAYS:创建文件,会改写前一个文件OPEN_EXISTING:文件必须已经存在。

MFC中文件操作、查找与选择总结

MFC中文件操作、查找与选择总结

MFC总结(一):MFC中文件操作、查找与选择总结(1)本文主要涉及以下几个方面,均为在MFC编程中较为常用的:CFile操作、CArchive操作、如何选择文件和文件夹、如何查找文件、获取当前目录、_access函数等。

(一)使用CFile类操作文件CFile类在MFC的文件操作中应该是最常用的了。

主要的成员函数有Open、Close、Write、Read、Seek、SeekToEnd、GetLength、GetPosition,具体用法见MSDN。

(1)文件打开操作:文件打开有两种方式,一种是先定义类对象,在用Open函数打开;一种是在定义类对象时传入文件名和打开方式。

分别如下CFile file;if(!file.Open(lpszFileName, nOpenFlags ))return;或CFile file(lpszFileName, nOpenFlags);(2)文件打开方式:文件打开方式,即上述nOpenFlags的值主要由一些宏定义的值组合而成,具体见MSDN,常用的有如下几种:A. CFile::modeCreate | CFile::modeNoTruncate |CFile::modeWrite,以写文件的方式打开,如果文件不存在,则新建文件,否则打开已有文件进行写入操作,此时不会清空原有文件;B. 将上述CFile::modeWrite更换为CFile::modeRead或者CFile::modeReadWrite可实现读操作或者同时读写。

(3)判断文件结束判断文件是否结束,没有结束则继续读取,否则关闭退出。

这点在编程时常用。

对于CFile常用的判断文件结束的方法是:while(file.GetPosition() < file.GetLength()){ //文件未结束//Add code ....}(4)值得注意的几点:A. 当文件名中包含路径时,要注意使用\\,如C:\\MyFile.DAT,在Unicode下时,需要使用_T("C:\\MyFile.DAT");B. 采用(2)中A方式写文件时,注意使用file.SeekToEnd()将文件指针移至文件尾,再写入,否则会覆盖已有的数据,这点经常被很多初学者忽视;C. 在打开文件后就要紧接着写下Close,养成这样的习惯,避免忘记关闭文件。

VS2010和MFC编程入门之44(MFC常用类:定时器Timer)

VS2010和MFC编程入门之44(MFC常用类:定时器Timer)

VS2010MFC编程入门之四十四(MFC常用类:定时器Timer)理解了CTime类和CTimeSpan类的使用,这里继续讲与时间有关的定时器。

定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后讲解。

定时器简介定时器,可以帮助开发者或者用户定时完成某项任务。

在使用定时器时,我们可以给系统传入一个时间间隔数据,然后系统就会在每个此时间间隔后触发定时处理程序,实现周期性的自动操作。

例如,我们可以在数据采集系统中,为定时器设置定时采集时间间隔为1个小时,那么每隔1个小时系统就会采集一次数据,这样就可以在无人操作的情况下准确的进行操作。

MFC定时器VS2010编程中,我们可以使用MFC的CWnd类提供的成员函数SetTimer实现定时器功能,也可以使用Windows API函数SetTimer来实现。

两者使用方法实际上很类似,但也有不同。

CWnd类的SetTimer成员函数只能在CWnd类或其派生类中调用,而API函数SetTimer则没有这个限制,这是一个很重要的区别。

因为本教程主要是讲解MFC编程,所以这里就先重点讲解MFC定时器的用法,关于API函数SetTimer的用法鸡啄米会在MFC定时器讲解的基础上进行延伸。

下面分步骤给出使用MFC定时器的方法。

1、启动定时器。

启动定时器就需要使用CWnd类的成员函数SetTimer。

CWnd::SetTimer的原型如下:UINT_PTR SetTimer(UINT_PTR nIDEvent,UINT nElapse,void (CALLBACK* lpfnTimer)(HWND,UINT,UINT_PTR,DWORD));参数nIDEvent指定一个非零的定时器ID;参数nElapse指定间隔时间,单位为毫秒;参数lpfnTimer指定一个回调函数的地址,如果该参数为NULL,则WM_TIMER消息被发送到应用程序的消息队列,并被CWnd对象处理。

CFile操作详解

CFile操作详解

CFile操作详解详解, CFile各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。

本文将对VisualC++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。

1.文件的查找当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。

MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。

下面这段代码演示了这个类的最基本使用方法。

CString strFileTitle;CFileFind finder;BOOL bWorking = finder.FindFile("C:\\windows\\sysbkup\\*.cab");while(bWorking){bWorking=finder.FindNextFile();strFileTitle=finder.GetFileTitle();}2.文件的打开/保存对话框让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。

MFC的类CFileDialog用于实现这种功能。

使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。

在构造CFileDialog对象时,如果在参数中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。

此时要重点注意为此CFileDialog对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。

下面这段程序演示了文件打开对话框的使用方法。

CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,"All Files (*.*)|*.*||",AfxGetMainWnd());CString str(" ",10000);mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000);str.ReleaseBuffer();POSITION mPos=mFileDlg.GetStartPosition();CString pathName(" ",128);CFileStatus status;while(mPos!=NULL){pathName=mFileDlg.GetNextPathName(mPos);CFile::GetStatus( pathName, status );}3.文件的读写文件的读写非常重要,下面将重点进行介绍。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VS2010MFC编程入门之四十五(MFC常用类:CFile文件
操作类)
上一节中鸡啄米讲了定时器Timer的用法,本节介绍下文件操作类CFile类的使用。

CFile类概述如果你学过C语言,应该知道文件操作使用的是文件指针,通过文件指针实现对它指向的文件的各种操作。

这些文件操作函数中有的最终还是调用了操作系统的API函数或者处理过程与之类似,例如在Windows系统中,fread函数就调用了API函数ReadFile。

Windows系统的API函数除了ReadFile,还有CreateFile、WriteFile等函数。

而MFC基于面向对象的思想,将这些Windows API函数封装到了CFile 类中,实现对文件的打开、关闭、读、写、获取文件信息等操作。

使用CFile类对文件进行操作非常便捷。

CFile 类的成员函数CFile( );
CFile(HANDLE hFile);
CFile(LPCTSTR lpszFileName,UINT nOpenFlags);
以上三个成员函数都是CFile的构造函数,用于构造CFile 对象。

参数hFile为要关联到CFile对象的文件的句柄。

参数lpszFileName为要关联到CFile对象的文件的相对路径或者绝对路径;参数nOpenFlags为文件访问选项的组合,通过各选项的按位或运算实现组合,下面的5个表列出了
nOpenFlags参数可能取的选项:下面的文件访问模式选项表中只能选择一个进行组合,默认取
CFile::modeRead。

取值描述CFile::modeRead 只读方式访问文件CFile::modeWrite 写入方式访问文件CFile::modeReadWrite 读写方式访问文件。

相关文档
最新文档