MFC常用类介绍

合集下载

mfc函数详解

mfc函数详解

mfc函数详解MFC(Microsoft Foundation Class)是一种面向对象的Windows应用程序框架,它是微软公司在Windows操作系统下的视窗类库,是Visual C++的一些类和函数的集合。

MFC的作用是提供一种高级的、面向对象的编程结构,让程序员更加容易地开发Windows应用程序。

下面是一些常用的MFC函数及其详解:1. AfxMessageBox函数原型:int AfxMessageBox(LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0);函数作用:显示一个消息框,包含文本、标题和按钮。

参数解释:lpszText:要显示的消息文本。

nType:消息框类型,包括按钮以及图标等样式。

nIDHelp:帮助ID,用于消息框的帮助文件。

返回值:用户选择的按钮行为,如“取消”、“确定”等。

2. AfxGetMainWnd函数原型:CWnd* AfxGetMainWnd( );函数作用:获取当前线程的主窗口对象指针。

参数解释:无。

返回值:当前线程的主窗口对象指针。

3. CString.Format函数原型:int Format(LPCTSTR lpszFormat, ...);函数作用:根据格式控制符格式化字符串。

参数解释:lpszFormat:格式化字符串,格式控制符用“%”标识。

...:格式控制符中各个参数的值。

返回值:格式化后的字符串长度。

4. CListBox.SetCurSel函数原型:int SetCurSel(int nIndex);函数作用:设置列表框中当前选定项的索引。

参数解释:nIndex:要选定项的索引,从0开始。

返回值:如果设置成功,则返回新选定项的索引;否则,返回LB_ERR。

5. CEdit.SetWindowText函数原型:void SetWindowText(LPCTSTR lpszString); 函数作用:设置编辑框的文本内容。

MFC常用类-CTimeSpan类

MFC常用类-CTimeSpan类

CTimeSpan类1.构造函数。

CTimeSpan类有下列构造函数:(1)CTimeSpan();(2)CTimeSpan(const CTimeSpan& timeSpanSrc );(3)CTimeSpan(time_t time );(4)CTimeSpan(LONG lDays, int nHours, int nMins, int nSecs );参数timeSpanSrc为一个已存在的CTimeSpan 对象,time为一个time_t 类型的时间值,lDays, nHours, nMins, nSecs分别为天数、小时数、分数和秒数。

2.时间值的提取函数(1)GetDays()获得CTimeSpan类对象中包含的完整的天数。

(2)GetHours()获得当天的小时数,值在-23到23之间。

(3)GetTotalHours()获得CTimeSpan类对象中包含的完整的小时数。

(4)GetMinutes()获得当前小时包含的分数,值在-59到59之间。

(5)GetTotalMinutes()获得CTimeSpan类对象中包含的完整的分数。

(6)GetSeconds()获得当前分钟包含的秒数,值在-59到59之间。

(7)GetTotalSeconds()获得CTimeSpan类对象中包含的完整的秒数。

格式化时间Format()将一个CTimeSpan对象转换成格式字符串。

使用方式与CTime类似,格式化字符包括以下几个:%D: CTimeSpan的总天数;%H:不足整天的小时数;%M:不足1小时的分数;%S:不足1分钟的秒数;%%:百分号。

4.重载运算符CTimeSpan类也重载了运算符“=”,“+”,“-”,“+=”,“-=”,“==”,“!=”,“<”,“>”,“<=”,“>=”,用于CTimeSpan对象的赋值、加减运算及两个CTimeSpan对象的比较。

mfc 教程

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类库是一个层次结构,主要有CObject类、应用程序类、可视对象类、绘图和打印类、通用类、数据库类、Internet和网络类、OLE类。

(1)CObject类CObject类是MFC的抽象基类,MFC中的大多数类是从CObject类派生出来的。

它是MFC 中多数类和用户自定义的根类,该类为程序员提供了希望融入所编写程序的许多公共操作,包括对象的建立和删除、串行化支持、对象诊断输出、运行时信息以及集合类的兼容等。

CObject类的声明在Afx.h中。

(2)应用程序结构类该类主要用于构造框架应用程序的结构,提供了多数应用程序公用的功能.编写程序的任务是填充框架,添加应用程序专有的功能。

1.应用程序和线程支持类CWinThread类是所有线程的基类,窗口应用程序类CWinApp类就是从该类中派生来的。

每个应用程序有且只有一个应用程序对象,在运行程序中该对象和其他对象相互协调,该对象从CWinApp中派生出来。

该类封装了初始化、运行、终止应用程序的代码。

2.命令相关类CCmdTarget类是CObject的子类,它是MFC所有具有消息映射属性的基类。

消息映射规定了当一对象接收到消息命令时,应调用哪个函数对该消息进行处理。

程序员很少需要从CCmdTarget类中直接派生出新类,往往都是从它的子类中派生出新类。

如窗口类(CWnd)、应用程序类(CWinApp)、文档模板类(CDocTemplate)、视类(CView)及框架窗口类(CFrameWnd)等。

3.文档类文档对象由文档对象模板创建,用于管理应用程序的数据。

视图对象表示一个窗口的客户区,用于显示文档数据并允许读者与之交互。

有关文档/视结构的类如下:①CDocTemplate类:文档模板的基类。

文档模板用于协调文档、视图和框架窗口的创建。

②CSingleDocTemplate类:单文档界面(SDI)的文档模板。

③CMultiDocTemplate类:多文档界面(MDI)的文档模板。

4 MFC是什么

4 MFC是什么

MFC程序的常用类
向导生成的MFC程序,一般包含如下的MFC类: ◆ (6) 对话框类CDialog——CDialog类用于在屏幕上显示
对话框的基类。对话框有两种类型:模态型和无模态 型。模态型对话框在应用程序继续之前必须由用户关 闭;无模态型对话框允许用户在不取消或不移去对话 框的情况下,显示其它对话框并返回到其它任务。 ◆ (7) 菜单类CMenu——CMenu类提供了生成、跟踪、更 新、破坏一个菜单的成员函数。 ◆ (8) 线程基类CWinThread——CWinThread类是MFC用来 封装线程的,包括UI线程和工作者线程。因此每个 MFC程序至少使用一个CWinThread派生类。被MFC程 序员熟知的CWinApp应用类就从这里派生。 当用户使用上述类时,应使用#include<afxwin.h>将头文 件afxwin.h包含到源文件中。
MFC中有的类不是从 CObject 派生而来的。 MFC类很庞大。对每一个类的使用都涉及到一定范
围的专业知识。 这些类为不同领域的专业程序设计人员提供很大的
方便之处:
即不同领域的专业人员用OOP设计自己的窗口程序 时,不用从头建立需要的类。而只消从MFC提供的相应 类继承而来即成。
几个重要的类
MFC的类随着版本的提高还会不断增加,“任 何人”要“全面的精通”这些类
◆ 在短时间是不现实的
(因为将学习与此类涉及到的有关专业知识)
◆ 也是不必要的。
学习Visual C++ 开发应该“了解”下面几个重 要的类,这几个重要的类构成 Visual C++ 开发 平台的基础。
◆ 简单值类型 CPoint 、CRect 、CSize、CString、 CTime

mfc使用手册

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提供了许多内置的对话框和控件,例如按钮、文本框和列表框等。

您可以使用对话框编辑器来创建对话框,并将控件拖放到对话框中。

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常用类介绍

MFC常用类介绍

MFC常用类介绍(一)C++学习 2010-06-27 11:43:05 阅读332 评论0 字号:大中小订阅CStaticCObject└CCmdTarget└CWnd└CStaticCStatic类提供了一个Windows静态控件的性能。

一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。

它可以被用来作为标签,框,或用来分隔其它的控件。

一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。

创建一个静态控件分两步。

首先,调用构造函数来构造此CStatic对象,然后调用Create成员函数来创建此静态控件并将它与该CStatic对象连接。

如果你是在一个对话框中创建了一个静态控件(通过一个对话框资源),则当用户关闭这个对话框时,此CStatic对象被自动销毁。

如果你是在一个窗口中创建了一个CStatic对象,则必须由你来销毁它。

在一个窗口的堆栈中创建的CStatic对象将自动被销毁。

如果你是使用new函数在堆中创建CStatic对象,则当你使用完后,必须调用delete来销毁这个CStatic 对象。

#include<afxwin.h>请参阅:CWnd,CButton,CComboBox,CEdit,CListBox,CScrollBar,CDialogCStatic类成员构造CStatic构造一个CStatic对象初始化Create创建Windows静态控件并将它与该CStatic对象连接操作符SetBitmap指定要在此静态控件中显示的位图GetBitmap获取先前用SetBitmap设置的位图的句柄SetIcon指定一个要在此静态控件中显示的图标GetIcon获取先前用SetIcon设置的图标的句柄SetCursor指定要显示在此静态控件中的光标图像GetCursor获取先前用SetCursor设置的光标图像的句柄SetEnhMetaFile指定要显示在此静态控件中的增强的图元文件GetEnhMetaFile获取先前用SetEnhMetaFile设置的增强图元文件的句柄CEditCObject└CCmdTarget└CWnd└CEditCEdit类提供了Windows编辑控件中的功能。

mfc的精度单位

mfc的精度单位

mfc的精度单位MFC(Microsoft Foundation Class)是微软提供的一套C++类库,用于开发Windows应用程序。

在MFC中,精度单位是指用于表示数据精度和格式化输出的单位。

以下是MFC 中常用的精度单位及其说明:1. 整型(Integer)* 用于表示整数类型的数据,包括short、int、long等。

* 默认情况下,整型数据以十进制形式输出,也可以通过格式化字符串指定其他进制。

2. 浮点型(Float)* 用于表示单精度浮点数,精度比双精度浮点数低。

* 默认情况下,浮点数以小数点形式输出,也可以通过格式化字符串指定其他格式。

3. 双精度型(Double)* 用于表示双精度浮点数,精度比单精度浮点数高。

* 默认情况下,双精度数以小数点形式输出,也可以通过格式化字符串指定其他格式。

4. 货币型(Currency)* 用于表示货币值,具有更高的精度和特定的格式。

* 默认情况下,货币值以特定格式输出,也可以通过格式化字符串进行自定义。

5. 日期和时间型(Date/Time)* 用于表示日期和时间值,具有特定的格式和精度。

* 默认情况下,日期和时间值以特定格式输出,也可以通过格式化字符串进行自定义。

6. 字符串型(String)* 用于表示文本数据,可以包含字母、数字、特殊字符等。

* 默认情况下,字符串以文本形式输出,也可以通过格式化字符串进行自定义。

7. 布尔型(Boolean)* 用于表示逻辑值,只有真(true)和假(false)两种状态。

* 默认情况下,布尔值以文字形式输出。

8. 二进制型(Binary)* 用于表示二进制数据,通常用于文件操作和网络通信等场景。

* 默认情况下,二进制数据以十六进制形式输出,也可以通过格式化字符串指定其他进制。

9. 其他类型(Other Types)除了以上常见的类型外,MFC还支持其他一些特殊类型和自定义类型,例如结构体、联合体、类等。

MFC常用的类及其成员函数简介

MFC常用的类及其成员函数简介

MFC常用类及其成员函数CRuntimeClass结构在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派生关系判断等成员函数。

每一个从CObject 类派生的类都有一个CRuntimeClass结构同它关联,以便完成在运行时得到对象的信息或基类的信息。

要使用CRuntimeClass结构,必须结合使用RUNTIME_CLASS()宏和其他有关运行时类型识别的MFC宏。

CCmdTarget类(1)消息发送MFC应用程序为每个CCmdTarget派生类创建一个称为消息映射表的静态数据结构,可将消息映射到对象所对应的消息处理函数上。

(2)设置光标BeginWaitCursor() 将光标改为沙漏形状;EndWaitCursor() 将光标改回到之前的形状;RestoreWaitCursor()用于将光标还原为等待状态。

(3)支持自动化CCmdTarget类支持程序通过COM接口进行交互操作,自动翻译COM接口的方法。

CWinThread类由CCmdTarget派生,主要工作是创建和处理消息循环。

CWinApp类从CWinThread类派生,成员函数InitApplication()、InitInstance()、Run()。

在InitInstance()函数中,创建了一个单文档模板类或多文档模板类(CDocTemplate)的对象,并且在文档模板的构造函数中,系统定义的宏RUNTIME_CLASS创建了文档类对象,框架窗口类对象和视图类对象.在MFC应用程序中有且仅有一个CWinApp派生类的对象,代表程序运行的主线程,代表应用程序本身。

CWnd类由CCmdTarget类直接派生,是MFC中最基本的GUI对象。

公共变量m_hWnd 用于存放供API函数调用的窗口句柄。

CframeWnd类从CWnd类派生而来,主要用来掌管一个窗口。

其对象是一个框架窗口,包括边界、标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。

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常用类-CTime类

MFC常用类-CTime类

CTime类1.构造和初始化CTime类对象CTi me类有下列构造函数:CTi me();CTi me(const CTi me& timeSrc );CTi me(time_t time );CTi me(int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST = -1 );CTi me(WORD wDosDate, WORD wDosTime, int nDST = -1);CTi me(const SYSTEMTIME& sysTi me, int nDST = -1 );CTi me(const FILETIME& fileTi me, int nDST = -1);说明:以不同的方式构造一个CTi me对象。

可以用一个已经存在的CTi me对象或一个time_t(在ti me.h中被定义为long)类型变量来构造和初始化CTi me对象,也可以用年、月、日、小时、分、秒来构造和初始化CTi me对象,还可以用SYSTEMTIME、FILETIME结构来构造和初始化CTime对象。

SYSTEMTIME、FILETIME结构定义如下:typedef struct _SYSTEMTIME {WORD wYear;WORD wMonth;WORD wDayOfWeek;WORD wDay;WORD wHour;WORD wMinute;WORD wSecond;WORD wMilliseconds;} SYSTEMTIME;typedef struct _FILETIME {DWORD dwLowDateTime; /* low 32 bits */DWORD dwHighDateTime; /* high 32 bits */} FILETIME, *PFILETIME, *LPFILETIME;2.时间值的提取函数(1)GetCurrentTime()获取系统当前时间。

MFC常用控件

MFC常用控件
和自绘列表框定方法 ➢ 列表框的默认模式是单选项模式; ➢ 所有的通用方法均适用于单选项列表框。 ➢ 只有两个类方法专门处理单选项列表框: int GetCurSel() const; 获得当前选择列表框项的下标(基于0) int SetCurSel(int nSelect); 设定列表框的某个选项呈选中状态。 3、多项选择特定方法
MFC常用控件
2021/7/1
1
对话框的组成
在VC++中,对话框主要是由对话框资源和对话框类组 成:
1. 对话框资源
对话框资源中描述的是对话框的大小、风格等特性, 以及对话框中控件的类型和它们的位置。定义对话框 资源最简单、最有效的方法就是使用Visual C++中的 资源编辑器。
2. 对话框类
10数据交换mfc类库使用数据交换ddx机制在对话框的控件和对话框类的数据成员之间交换数据updatedatatrue将数据从对话框的控制传递到对话框对象的数据成员缺省的调用在对话框的onokupdatedatafalse将数据传送到对话框中缺省的调用发生在对话框的oninitdialog创建一个有模式对用户可以在任何时候调用updatedata进行数据交换该函数参数缺省值为true
静态文本控件(Static Text Control); 静态图片(Picture Control);属性有:Center,image,Real
size,Type,Image和Color
2021/7/1
11
按钮
常见的按钮有如下几种类型:命令按钮、单选按钮和复选 按钮。
➢ 命令按钮(button):命令按钮适用于消息的发送,通常用于执行某个命 令。
2021/7/1
21

mfc的cbinary的用法

mfc的cbinary的用法

mfc的cbinary的用法
CBinary是MFC(Microsoft Foundation Classes)中的一个类,用于处理二进制数据。

它提供了一些功能来读取、写入和操作二进制数据。

CBinary类的一些常用的成员函数和方法包括:
1.构造函数和析构函数:使用CBinary的构造函数进行初始化,并使用析构函数进行清理。

2. SetData和GetData:SetData方法用于设置二进制数据,GetData方法用于获取二进制数据。

3. GetSize:获取二进制数据的大小。

4. Load和Save:Load方法从文件或流中加载二进制数据,Save 方法将二进制数据保存到文件或流。

5. Append和Insert:Append方法用于在二进制数据末尾追加新的数据,Insert方法用于在指定位置插入数据。

6. Remove和Clear:Remove方法用于删除指定位置处的数据,Clear方法用于清空所有数据。

7. Find和FindLast:Find方法用于在二进制数据中查找指定的
字节序列,FindLast方法查找最后一个匹配的字节序列。

拓展:
除了上面提到的基本功能,CBinary还可以用于处理二进制文件的读写、数据加密和解密等应用。

可以使用CBinary在内存中创建一个
二进制数据块,然后通过读取/写入文件或发送/接收网络数据等方式,对二进制数据进行读写操作。

此外,CBinary还有一些其他与二进制数据处理相关的功能,如截取子数据块、合并多个二进制数据块等。

总之,CBinary是MFC中用于处理二进制数据的一个类,提供了许多用于读取、写入和操作二进制数据的方法和功能。

MFC中常用数据类型

MFC中常用数据类型

typedef unsigned short WORD; windef.h
typedef unsigned short wchar_t
typedef short SHORT; winnt.h
//整型typedef int
下面将介绍一些常用数据类型的使用:
我们先定义一些常见类型变量借以说明
int i = 100;
long l = 2001;
float f=300.2;
double d=12345.1பைடு நூலகம்9;
char username[]="女侠程佩君";
char temp[200];
char *buf;
CString str;
_variant_t v1;
_bstr_t v2;
一、其它数据类型转换为字符串
短整型(int)
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
LPCRECT:32-bit指针,指向一个不变的RECT结构
L表示long指针, 这是为了兼容Windows 3.1等16位操作系统遗留下来的, 在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。
P表示这是一个指针
C表示是一个常量
同样, LPCSTR就只能是一个ANSI字符串, 在程序中我们大部分时间要使用带T的类型定义。
LPCTSTR == const TCHAR *
MFC/windows基本数据类型详细介绍
#define FALSE 0 afx.h
#define TRUE 1 afx.h

VS2010和MFC编程入门之43(MFC常用类:CTime类和CTimeSpan类)

VS2010和MFC编程入门之43(MFC常用类:CTime类和CTimeSpan类)

VS2010MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类)理解了MFC常用类CString类的用法,这里继续讲另外两个MFC常用类-日期和时间类CTime类和CTimeSpan类。

日期和时间类简介CTime类的对象表示的时间是基于格林威治标准时间(GMT)的。

CTimeSpan类的对象表示的是时间间隔。

CTime类和CTimeSpan类一般不会被继承使用。

两者对象的大小都是8个字节。

CTime表示的日期上限是3000年12月31日,下限是1970年1月1日 12:00:00 AM GMT。

CTime类的主要成员函数下面列出CTime类的主要成员函数,并加以讲解。

CTime();构造一个未经初始化的CTime对象。

此构造函数使我们可以定义一个CTime对象的数组,在使用数组前需要以有效的时间值为其初始化。

CTime(__time64_t time);以一个__time64_t(注意:最前面的下划线有两条)类型的数据来构造一个CTime对象。

参数time是一个__time64_t类型的值,表示自GMT时间1970年1月1日零点以来的秒数,这里要注意的是,参数time代表的时间会转换为本地时间保存到构造的CTime对象中。

例如,我们传递参数0构造一个CTime对象,然后调用CTime对象的GetHour成员函数将返回8,因为参数0代表的GMT时间转换为北京时间后为1970年1月1日 8:00:00。

CTime(intnYear,intnMonth,intnDay,intnHour,intnMin,intnSec,intnDST = -1);以本地时间的年、月、日、小时、分钟、秒等几个时间分量构造CTime对象。

参数nYear、nMonth、nDay、nHour、nMin、nSec分别表示年、月、日、小时、分钟、秒,取值范围如下:时间分量取值范围nYear1970-3000nMonth 1-12nDay 1-31nHour 0-23nMin 0-59nSec 0-59参数nDST指定是否实行夏令时,为0时表示实行标准时间,为正数时表示实行夏令时,为负数时由系统自动计算实行的是标准时间还是夏令时。

cclientdc用法

cclientdc用法

cclientdc用法CClientDC是MFC编程中很常用的一个类,用于获取设备上下文(DC),并在此基础上进行绘图操作。

本文将分步骤阐述CClientDC的用法,并介绍一些注意事项,以帮助读者更好地理解和使用这个类。

1. 获取设备上下文CClientDC的主要作用是获取设备上下文,可通过以下语句实现:```CClientDC dc(this);```其中,this代表当前的窗口句柄。

通过这句话,就可以获取到表示窗口客户区的设备上下文,从而可以在此基础上进行绘图操作。

2. 绘制图形CClientDC提供了许多绘图函数,例如LineTo、Rectangle、Ellipse等等。

这些函数的用法和常规的GDI函数相似,只需要在设备上下文上调用相应函数即可。

例如,绘制一条连接屏幕左上角和右下角的直线,可以使用以下语句:```dc.LineTo(GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_C YSCREEN));```其中,GetSystemMetrics函数可以获取到当前屏幕的宽度(SM_CXSCREEN)和高度(SM_CYSCREEN)。

3. 注意事项在使用CClientDC进行绘图时,需要注意以下几点:(1)CClientDC必须在WM_PAINT消息中使用。

也就是说,只有在窗口需要重绘时,才能使用CClientDC。

否则,可能会引起屏幕闪烁等问题。

因此,在调用CClientDC之前,应该先判断是否需要进行绘图操作。

(2)当窗口的大小发生改变时,设备上下文也需要重新获取。

因此,应该在WM_SIZE消息中重新获取CClientDC。

(3)设备上下文是一种系统资源,使用完毕需要及时释放。

CClientDC获取的设备上下文会在离开作用域时自动释放,但是如果在作用域内手动释放了设备上下文,则可能会引起内存泄漏等问题。

(4)在使用CClientDC进行绘图时,应该尽量减少GDI操作的次数,以提高性能。

MFC类及其作用

MFC类及其作用

CObject的类都有一个与它相关的CRuntimeClass结构,用来在运行时获得对象以及其基类的信息。

要使用CRuntimeClass结构,必需借助于RUNTIME_CLASS()宏和其他有关运行时类型识别的宏。

2.CObjectCObject类的作用:a.对象诊断:MFC提供了两种对象的诊断机制,一种是利用成员含数AssertValid进行对象有效性检查,这样可以使类在继续运行以前对自已进行正确性检查。

另一种是利用成员含数Dump输出对象的数据成员的值,诊断信息以文本形式放入一个数据流中,用于调试器的输出窗口信息显示。

这两种诊断只能用于Debug版的应用程序。

b.CObject类提供了GetRuntimeClass与IsKindOf两个成员含数来支持运行时类型识别。

GetRunntimeClass根据对象的类返回一个CRuntimeClass结构的指针,它包含了一个类的运行信息,含数IsKindOf用于测试对象与给定类的关系。

c.提供对象的序列化。

必须在类的定义中包含DECLARE_SERIAL 宏,并且在类的实现文件中加入包含IMPLEMENT_SERIAL宏.mdTarget 该类直接从CObject类派生而来.它负责将消息发送到能够响应这些消息的对象。

它是所有能实行消息映射MFC类的基类,如CWinThread,CWinApp,CWnd,CView,CDocument等类。

CCmdTarget 类的主要功能包括消息发送,设置光标和支持自动化.a.消息发送:MFC应用程序为每个CCmdTarget派生类创建一个称为<消息映射表>的<静态数据结构>,该消息映射结构将消息映射到对象所对应的消息处理含数上。

b.设置光标:CCmdTarget类定义了3个成员含数用于设置光标,成员含数BeginWaitCursor()将光标改为沙漏形状,提示程序正在进行某种操作。

当操作完成时,含数EndWaitCursor()用于将光标改回到BeginWaitCursor()之前的形状。

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

MFC常用类介绍(一)C++学习2010-06-27 11:43:05 阅读332 评论0 字号:大中小订阅◆CStaticCObject└CCmdTarget└CWnd└CStaticCStatic类提供了一个Windows静态控件的性能。

一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。

它可以被用来作为标签,框,或用来分隔其它的控件。

一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。

创建一个静态控件分两步。

首先,调用构造函数来构造此CStatic对象,然后调用Create成员函数来创建此静态控件并将它与该CStatic对象连接。

如果你是在一个对话框中创建了一个静态控件(通过一个对话框资源),则当用户关闭这个对话框时,此CStatic对象被自动销毁。

如果你是在一个窗口中创建了一个CStatic对象,则必须由你来销毁它。

在一个窗口的堆栈中创建的CStatic对象将自动被销毁。

如果你是使用new函数在堆中创建CStatic对象,则当你使用完后,必须调用delete来销毁这个CStatic 对象。

#include<afxwin.h>请参阅:CWnd,CButton,CComboBox,CEdit,CListBox,CScrollBar,CDialogCStatic类成员构造初始化操作符◆CEditCObject└CCmdTarget└CWnd└CEditCEdit类提供了Windows编辑控件中的功能。

编辑控件是一个子窗口矩形,用户可以向其中输入文本。

可以通过对话模板或直接从代码中创建一个编辑控件。

在两种情形下,首先调用CEdit构造程序构造CEdit 对象,再调用Create成员函数创建Windows编辑控件并将其与CEdit对象连接。

构造在CEdit的派生类中可以单步实现。

为派生类编写构造程序并从构造程序中调用Create。

CEdit从CWnd继承了重要的功能,要在CEdit对象中设置或获取文本,使用CWnd成员函数SetWindowText 和GetWindowText,可以设置和得到编辑控件的全部内容,即使它是一个多行控件。

如果编辑控件是多行的,使用CEdit成员函数GetLine,GetSel,GetSel和ReplaceSel来获取和写入控件的部分文本。

如果要处理编辑控件发往其父类(通常是一个CDialog派生类)的通知消息,则向父类中为每一消息添加一个消息映射入口和消息处理成员函数。

各消息映射入口可采用如下形式:ON_Notification(id,memberFxn)其中id指定了发送通知的编辑控件的子窗口ID,memberFxn为你写好的处理通知的父成员函数的名字。

父函数形式如下:afx_msgvoidmemberFxn();下面是一组可能的消息映射入口,以及在何种情况下向父类发送的描述:·ON_EN_CHANGE 用户采取的行动可能会改变编辑控件的文本。

与EN_UPDATE通知消息不同,该通知是在Windows更新显示之后发送的。

·ON_EN_ERRSPACE编辑控件不能为特定请求分配足够的空间。

·ON_EN_HSCROLL用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。

·ON_EN_KILLFOCUS编辑控件失去输入焦点。

·ON_EN_MAXTEXT 当前输入超过了为编辑控件指定的数目,并作截尾处理。

当编辑控件不具有ON_EN_HSCROLL风格且要输入的字符会超过编辑控件的宽度时,发送消息。

当编辑控件不具有ON_EN_VSCROLL风格且要输入的字符会超过编辑控件的高度时,也会发送消息。

·ON_EN_SETFOCUS编辑控件获得焦点。

·ON_EN_UPDATE 编辑控件将要显示变动的文本。

在控件对文本格式化之后但在显示文本之前发送消息,以便在必要时改变窗口尺寸。

·ON_EN_VSCROLL用户单击了编辑控件中的垂直滚动条,父窗口在屏幕更新之前被通知。

如果在对话框内创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。

如果使用对话框编辑器从对话资源中创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。

如果在窗口内创建CEdit对象,也需要删除它。

如果在栈上创建CEdit对象,它被自动删除。

如果使用new 函数在堆上创建CEdit对象,在用户中止编辑控件时,必须对其调用delete来删除它。

如果在CEdit对象中分配存储空间,覆盖CEdit析构程序来处理分配情况。

关于CEdit的更多信息,请参阅联机文档“VisualC++程序员指南”中的“控件主题”。

#include<afxwin.h>请参阅:CWnd,CButton,CComboBox,CListBox,CScrollBar,CStatic,CDialogCEdit类的成员构造函数属性操作剪贴板操作CObject└CCmdTarget└CWnd└CButton类CButton提供了对Windows按钮控件的操作。

按钮控件是一个小的矩形子窗口,可以通过单击选中(按下)或不选中。

按钮可以单独使用,也可以成组使用,它还可以具有文本标题。

在用户单击它的时候,按钮通常要改变显示外观。

典型的按钮控件有:复选框、单选钮和下压式按钮(pushbutton)。

一个CButton对象可以是它们中的一种,这由它的按钮风格和成员函数Create的初始化决定。

此外,类CButtonBitmap是从类CButton继承而来的,不过它支持按钮的图像标签。

一个CButtonBitmap 对象可以分别为它的四种状态(未按下、按下、获得焦点和禁止存取)设置不同的位图。

既可以从对话框模板中创建一个按钮控件,也可以直接在代码中创建。

无论哪种情况,都要先调用构造函数CButton构造一个CButton对象,然后调用成员函数Create创建Windows按钮控件并应用到CButton对象上。

在一个从类CButton派生出来的类中,构造可以一步完成。

程序员可以为这个派生类编写一个构造函数,并在其中调用Create函数。

如果想处理Windows的通知消息,如位图按钮控件发给它的父对象(通常是从CDialog继承来的)的消息,就要在父对象中加入消息映射入口以及处理每个消息的成员函数。

每个消息映射入口的格式如下:ON_Notification(id,memberFxn)其中id指定了发送通知的控件的子窗口的ID,而memberFxn指定了处理该通知的父对象中的成员函数名。

父对象的函数原型格式如下:afx_msgvoidmemberFxn();可能的消息映射入口如下:如果在对话框资源中创建了CButton对象,则在用户关闭该对话框时会自动撤消这个CButton对象。

如果在窗口中创建了CButton对象,就可能需要自己撤消它。

如果是用new函数在内存的堆中创建该对象的,则在用户关闭该窗口按钮控件时,必须用delete函数撤消它。

如果在堆栈中创建了该对象,或者它嵌入在父对话框对象中,系统会自动撤消它。

#include<afxwin.h>请参阅:CWnd,CComboBox,CEdit,CListBox,CScrollBar,CStatic,CBitmapButton,CDialogCButton类的成员构造函数初始化函数操作可覆盖的函数CFileDialogCObject└CCmdTarget└CWnd└CDialog└CCommonDialog└CFileDialogCFileDialog类封装了Windows常用的文件对话框。

常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。

可以用构造函数提供的方式使用CFileDialog,也可以从CFileDialog派生出自己的对话类并编写一个构造函数来适应你的需要。

每种情况下,对话框都与标准MFC对话框一样工作。

因为它们都是CCommonDialog 类的派生类。

要使用CFileDialog,先用CFileDialog构造函数构造一个对象,当创建了一个对话框后,可以设置或修改m_ofn结构中的任何值,以初始化对话框控件的值或状态。

m_ofn结构是OPENFILENAME类型的。

要了解更多信息,可参阅联机文档“Win32SDK”中的OPENFILENAME结构。

初始化对话框控件后,调用DoModal成员函数显示对话框并使用户输入路径和文件。

DoModal返回不论是用户选择了OK(IDOK)还是取消(IDCANCEL)按钮。

当DoModal返回IDOK,可以使用某一个CFileDIalog的公共成员函数获取用户输入的信息。

CFileDIalog包含许多保护成员,使你可以处理常用的共享冲突、文件名合法性检查、列表框改变通知。

这些保护成员对许多应用来说用处不大,因为缺省处理是自动的。

对这些函数来说,消息映射入口是不必要的,因为它们是标准虚函数。

可以使用WindowsCommDlgExtendError函数判断在初始化对话框时是否是发生了错误,并获取关于错误的更多信息。

析构一个CFileDialog对象是自动,无须调用CDialog::EndDialog。

要使用户选用多个文件,可在调用DoModal之前设置OFN_ALLOWMULTISELECT标志。

你应提供文件名缓冲区来放置返回的多个文件名的列表,这通过用一个分配了的缓冲区指针替换m_ofn.lpstrFile来实现,要在创建了CFileDialog之后调用DoModal之前进行此操作。

另外,必须用m_ofn.lpstrFile指向的缓冲区字节数来设置m_ofn.nMaxFile。

CFileDialog依赖于Windows3.1及以后版本中的COMMDLG.DLL。

如果从CFileDialog中派生出一个新类,可用消息映射处理。

要扩展消息处理,从CWnd中派生一个类,向新类中加入一个消息映射并为新消息提供成员函数,无须提供一个钩子函数来定制对话框。

要定制对话框,从CFileDialog中派生一个对象,提供一个定制对话模板,从扩展控件中加入一个消息映射,处理通知消息。

任意未处理的消息将传递给基类。

无须定制钩子函数。

要了解有关使用CFileDialog的信息,可参阅联机文档“VisualC++程序员指南”中的“常用对话类”。

#include<afxdlgs.h>CFileDialog类的成员数据成员构造函数可覆盖的函数CListBoxCObject└CCmdTarget└CWnd└CListBoxCListBox类提供Windows列表框的功能。

相关文档
最新文档