搜档网
当前位置:搜档网 › MFC框架说明

MFC框架说明

MFC框架说明
MFC框架说明

1、MFC简介

MFC,微软基础类(Microsoft Foundation Classes),是微软提供的用于在C++环境下编写应用程序的一个框架和引擎,是对API函数的专用C++封装,微软做了大量的封装,隐藏了许多内部实现,简化了开发人员的工作量。

MFC (Microsoft Foundation Class Library)中的各种类相互结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK 来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。

2、系统所用的MFC类的层次图

这个图是从MFC类图中所截取的,程序用到的MFC类的一个层次图,从这个图中,可以理解到系统所用到的控件或者类的一个相互关系。

(1)CWinApp类

每个应用程序从类CWinApp 派生出自己的应用程序类,并定义一个全局的对象。该应用程序类包含了Windows 下MFC 应用程序的初始化、运行和结束过程。基于框架建立的应用程序必须有一个(且只能有一个)从CWinApp 派生的类的对象。

CWinApp 所包含的数据成员主要用于存放和控制应用程序本身的信息,主要数据成员

除了CWinApp的成员函数以外,微软基础类库还提供了以下全局函数,用于访问你的

主要的函数功能说明:

InitInstance()函数用于初始化实例。Windows 下对同一个应用程序可以运行多个实例。例如,如果已经在运行资源管理器,用户还可以再一次或多次启动资源管理器,这样,系统中就有两个或多个资源管理器在运行,这些运行着的资源管理器就是资源管理器应用程序的多个运行实例。当每次启动某个应用程序的一个实例时,WinMain()函数都要调用InitInstance()函数。

(2)CWnd类

CWnd类提供了微软基础类库中所有窗口类的基本功能。CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁Windows的窗口,但是不销毁对象。

CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。程序开发者可以在派生类中重载OnMessage成员函数以处理成员的特定消息。

使用CWnd类同时还能够为应用程序创建Windows的子窗口。先从CWnd继承一个类,然后在派生类中加入成员变量以保存与你的应用程序有关的数据。在派生类中实现消息处理成员函数和消息映射,以指定当消息被发送到窗口时应该如何动作。

程序开发者可以经过两个步骤来创建一个子窗口。首先,调用构造函数CWnd以创建一个CWnd对象,然后调用Create成员函数以创建子窗口并将它连接到CWnd对象。

当用户关闭你的子窗口时,应销毁CWnd对象,或者调用DestroyWindow成员函数以清除窗口并销毁它的数据结构。

在微软基础类库中,从CWnd派生了许多其它类以提供特定的窗口类型。这些类中有许多,包括CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView和CDialog,被用来进一步派生。从CWnd派生的控件类,如CButton,可以被直接使用,也可以被进一步派生出其它类来。

3、初始化流程及消息循环机制

基于MFC的对话框应用程序的初始化流程及消息循环机制的过程见下面的流程图:

由于Windows是一个面向消息的操作系统,在Windows环境下很大一部分编程工作涉及消息处理。每当发生一个事件,如击键或鼠标点击,就会向应用程序发送一个消息,然后由它来处理事件。

微软基础类库提供了为基于消息的编程而优化的编程模式。在这种模式下,“消息映射”被用于指明哪个函数将为特定的类处理不同的消息。消息映射包含了一个或多个宏,用以指定哪个函数处理哪个消息。

ON_COMMAND宏一般被用于处理菜单、按钮和加速键产生的命令消息。

ON_COMMAND( ID_MYCMD, OnMyCommand )这句话的意思是指,一个资源ID为“ID_MYCMD”的控件的事件处理消息为OnMyCommand函数。

4、常用控件介绍

以下是系统中用到的控件信息列表,以及会对一些着重使用的控件进行详细介绍:

(1)CListCtrl使用:

标,小图标,列表,详细资料”。

设置方式有手工设置、代码设置两种:

手工设置:当点击列表控件的右键“属性”后,在样式标签下面,点击“查看”后面的ComboBox,出现样式的设置。

代码设置:

(2)Radio Box的使用

这个控件是作为单选按钮进行使用的,那么单选是指的是同一组Radio Box之间只能选择一个Radio Box,分组前要保证同一组的Radio Box的资源号连续,当第一个Radio Box的属性中的“Group”打勾,如下:

那么从这一个Radio Box开始,假如不存在下一个设置“Group”属性的Radio Box,那么所有的RadioBox就为一个组,若存在,则RadioBox设为两个组,从第一个具有“Group”属性到第二个设置有“Group”属性的Radio Box为一个组,剩下的Radio Box为一个组。1)如何利用代码设置一组Radio Box的选中状态:

假定一组Radio Box为三个控件:

那么这句代码的意思就是,设置第二个Radio Box的选中状态。

5、MFC应用程序创建及说明

Visual C++6.0提供了应用程序框架生成向导(AppWizard),以方便程序开发者自动生成一个简单的应用程序框架,为什么说它是框架呢?困为程序的执行结果仅仅只是显示了一个无任务内容的空窗口。

以面将介绍在ApppWizard工具中创建应用程序框架的步骤,再对生成的工程中包含的

各部分文件、类以及相互间的关系进行介绍。

(1)工程及工作区的介绍

当我们创建和开发一个应用程序时,一般是由很多相关联的文件共同组成,包括程序源文件、头文件、资源文件等,那么我们将这些文件放在一个工程中进行管理,将应用程序的所有文件形成一个有机的整体。那么我们在VC6.0的主窗口中,看到了工作区窗口。它与工程是什么关系呢?工程是置于工作区的管理之下,一个工作区可以管理多个工程,甚至是不同类型的工程,同一个工作区中的工程之间相独立,但共用一个工作区的设置环境。

(2)生成应用程序框架详解

1)启动Visual C++6.0程序,进入程序主窗口界面;

2)先把“文件|新建”菜单命令,将弹出“新建”对话框,如下图所示。此时可选择所创建的文件类型,包含“文件”、“工程”、“工作区”、“其他文档”4种类型,每一种类型下面又包含许多具体的文件类型。这里为了生成应用程序框,选择“工程”标签,然后选择“MFC AppWizard(exe)”选项,表示要创建一个使用MFC基本类的应用程序,然后在右侧的“工程名称”编辑框中输入要建立工程的名称“AMS”,在“位置”编辑框中选择工程存储路径,其他的设置都采用默认荐,单击“确定”按钮。

3)此时会自动弹出“MFC 应用程序向导-步骤1 ,如下图所示

在这里,我们将以对话框类型的程序进行讲解。在向导中,默认的将会是多重文档类型,我们将其改为对话框。可以看到选项改变时,左侧的示意图也将相应改变,示意出所选类型的缩略图。点击“下一步”,进入下一个界面

三种类型应用程序的区别:

单文档(Single document):单文档界面应用程序,该应用程序一次只能处理一个文档对象,或者说就是一次只能处理一个文件。比如Windwos系统下面的写字板、画图等应用程序,一次只能编辑一个文档或一张图片,如果在编辑某个文件时又要新建或打开另一个文件时,则要先关闭当前正在编辑的文件。

多文档(Multiple document):这种类型的应用程序,一次可以处理多个文档对象,或者说一次可以处理多个文件。典型的例子如Microsoft Word、Photoshop等应用程序,可同时编辑多个文件。

对话框(Dialog based):这种应用程序一般是一些比较小的、工具型的软件,如Windows 下面的CD播放器、录音机等。

4)弹出“MFC 应用程序向导–步骤2 共4 步”

这里将设置应用程序的外观,以及添加相应的支持,以及对话框的标题,这里默认为工程名“AMS”。确认后,点击“下一步”按钮。

5)弹出“MFC 应用程序向导–步骤3 共4 步”

第一个选项为选择程序的风格,这里只能选择“MFC标准”;

第二个选项为“是否希望生成源文件备注吗?”,是用于设置是否为生成的源代码添加必要的注释说明,添加注释有助于对应用程序的源代码的学习和理解,因此我们一般默认选择“是”。

第三个选项用于生成MFC类,选择“As a shared DLL”项,所有的MFC的类存放在动态链接库中,因此应用程序会小时,但是在发布时应该为应用程序提供执行所依赖的动态链接库,选择“As a static linked library”项时,应用程序所用到的MFC类都编译进了可执行文件中,因此可执行文件比使用DLL方式的要太,但可单独发行。一般的,对于小的应用程序可以采用静态库方式,对于大的应用程序一般采用动态库方式。在这里,我们使用默认设置,单击“Next”按钮,继续下一步。

6)弹出MFC AppWizard最后一个对话框,如下图所示。

在对话框上部的列表内,可以看到MFC AppWizard将要产生的两个类的名称:一个应用类,一个主对话框窗口类。通过对话框下面的几个编辑框,可以修改默认的类名、类的头

文件和实现文件名。一般采用默认设置,不作任何修改。单击“Finish”进入完成界面。

7)弹出“New Project Information”对话框,如下图所示。

在对话框中列出了前面设置时所建工程的一些基本信息,包括应用程序类型(对话框)、要创建的类及所在文件、应用程序的一些特性等。

确认信息后,单击“OK”按钮,则可创建一个工程,即一个应用程序的框架。

8)编译生成并显示

生成程序后,在项目工作区中将自动打开AMS.dsw 项目工作区文件,窗口标题将显示为打开的项目名AMS。这样即生成了一个可执行的应用程序框架。

在菜单中依次选择“Build|Compile”菜单(或按快捷键F7)编译该程序。编译完后选择“Build|Execute HelloMFC.exe”菜单命令(或按快捷键Ctrl+F5)运行该程序。也可以直接按组合键Ctrl+F5,系统提示是否编译,选择“Yes”,IDE 将自动编译连接并运行AMS.exe程序。

(3)工程的文件组成及说明

在AppWizard创建的工程中包含了框架程序所有的类、全局变量声明和定义。打开对应的工程目录的文件列表,可以看到该目录下面会出现如下结构:

Debug目录用于存放编译、连接时产生的中间文件,res目录用于存放工程的资源文件。

根据选项设置的不同,AppWizard所创建的文件会略有不同,标准的AppWizard文件包

特别说明:由于MFC 体系结构非常大,包含许多头文件,如果每次都编译的话比较费时,因此把常用的MFC头文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h 等,然后让stdafx.cpp 包含这个stdafx.h文件。这样,由于编译器可以识别哪些文件已经编译过,所以stdafx.cpp 就只编译一次,并生成所谓的预编译头文件(因为它存放的是头文件编译后的信息)。如果以后在编程时不想让有些MFC头文件每次都被编译,也可以将它加入到stdafx.h 中。采用预编译头文件可以加速编译过程。

MFC经典绘图方法总结

MFC经典绘图方法总结 Windows 绘图的实质就是利用windows提供的图形设备接口GDI(Graphics Device Interface)将图形会制在显示器上。 为了支持GDI绘图,MFC提供了两种重要的类: 设备上下文DC(Device Context)类,用于设置绘图属性和绘制图形; 绘图对象类,封装了各种GDI绘图对象,包括画笔、刷子、字体、位图、调色板和区域。 CDC类介绍: 在MFC中,CDC是设备上下文类的基类,派生类包括:CClientDC, CPaintDC, CWindowDC, CMetaFileDC类 CClientDC 客户区设备上下文,绘制客户区时 CPaintDC 一般发生在窗口需要重绘时 CWindwDC 可以绘制整个窗口,通常在窗口WM_NCPAINT消息的响应函数CWnd::OnNCPaint()中使用 CMetaFileDC 专门用于图元文件的绘制,图元文件记录一组GDI命令,重建图形输出。 CDC包含m_hDC和m_hAttribDC二个设备上下文。CDC指导所有对m_hDC的输出GDI调用(SetTextColor)以及对m_hAttribDC的大部分属性GDI调用(GetTextColor)。 CDC对象的重要函数如下: 1、为指定设备创建上下文virtual BOOL CreateDC(...) 比如创建一个为屏幕的设备上下文 CDC dc; dc.CreateDC("DISPLAY", NULL, NULL,NULL); 2、创建内存设备上下文,与指定设备上下文兼容virtual BOOL CreateCompatibleDC( CDC * pDC) 3、删除CDC对象对应的Windows设备上下文, 通常不调用该函数而是使用析构程序virtual BOOL DeleteDC(); 4、将HDC句柄转化为设备上下文的句柄: CDC *pDC=CDC::FromHandle( hDC ) 5、选择GDI对象入选到设备上下文中,一共有五种形式: CPen * SelectObject( CPen * pPen) ; CBrush * SelectObject( CBrush * pBrush) ; virtual CFont * SelectObject( CFont * pFont) ; CBitmap * SelectObject( CBitmap * pBitmap) ; int SelectObject( CRgn * pRgn) ;

MFC程序结构分析

MFC程序结构分析2008-11-08 16:39 分类:VC\MFC 字号:大中小 1 Windows程序工作原理 WINDOWS 程序设计是一种完全不同于传统的DOS 方式的程序设计方法,它是一种事件驱动方式的程序设计模式。在程序提供给用户的界面中有许多可操作的可视对象。用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的事件,这些事件发生后的结果是向程序中的某些对象发出消息,然后这些对象调用相应的消息处理函数来完成特定的操作。WINDOWS 应用程序最大的特点就是程序没有固定的流程,而只是针对某个事件的处理有特定的子流程,WINDOWS 应用程序就是由许多这样的子流程构成的。 从上面的讨论中可以看出,WINDOWS 应用程序在本质上是面向对象的。程序提供给用户界面的可视对象在程序的内部一般也是一个对象,用户对可视对象的操作通过事件驱动模式触发相应对象的可用方法。程序的运行过程就是用户的外部操作不断产生事件,这些事件又被相应的对象处理的过程。下面是WINDOWS 程序工作原理的示意图。 2 建立应用程序 在介绍AppWizard 的时候,我们已经建立了一个名字为TEST 的工程,事实上这个框

架程序已经可以编译运行了。在BUILD 菜单中选择REBUILD ALL 菜单项,系统开始编译由 APPWIZARD 自动生成的程序框架中所有文件中的源代码,并且链接生成可执行的应用程 序。在BUILD 菜单中选择EXECUTE 菜单项,应用程序就开始开始运行了,虽然我们没有编 写一行代码,但是可以看出由系统自动生成的应用程序的界面已经有了一个标准WINDOWS 应用程序所需的几个组成部分,我们要做的事情是往这个应用程序添加必要的代码以完成 我们所需要的功能。 接下来将要对WINDOWS 自动生成的这个应用程序框架作详细的介绍,让你对MFC 方式的 WINDOWS 应用程序的工作原理有全面的认识,只有这样你才会知道应该如何往程序框架当 中添加需要的代码。 3 程序结构剖析 为了让您对MFC 方式的程序的框架有一个总体的认识,这里设计了一个表示程序中的 主要类之间的关系的图表:

MFC程序结构分析

主题: MFC深入浅出 1.MFC深入浅出 MFC概述 2. 3. 1.MFC是一个编程框架 2. 3.MFC (Microsoft Foundation Class Library) 中的各种类结 合起来构成了一个应用程序框架,它的目的就是让程序员在此基础 上来建立Windows下的应用程序,这是一种相对SDK来说更为简单 的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了 用户接口的标准实现方法,程序员所要做的就是通过预定义的接口 把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++ 提供了相应的工具来完成这个工作:AppWizard可以用来生成初步 的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用 户接口;ClassWizard用来协助添加代码到框架文件;最后,编译, 则通过类库实现了应用程序特定的逻辑。 4. 5. 6. 7. 1.封装 2. 3.构成MFC框架的是MFC类库。MFC类库是C++类库。这 些类或者封装了Win32应用程序编程接口,或者封装了应用 程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO 数据访问的功能,等等,分述如下。 4. 5.(1)对Win32应用程序编程接口的封装 6. 7.用一个C++ Object来包装一个Windows Object。例 如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就 是前者的窗口句柄。 8. 9.(2)对应用程序概念的封装

MFC原理结构说明

JEI
N.
MFC 原理結構說明
捷胤工業有限公司 總合研究所 (JISC)
CO .
LT D
捷胤工業有限公司 NEW JEIN Corp. Corp.

JEI
? 質流控制器(Mass?Flow?Controller)簡稱 MFC。簡 易的詮釋 MFC 是一種流量與控制閥組的精密組機 電組合,其測量方式與一般流量計最大的差別, 是在於它是利用熱感溫差 非接觸方式測量氣體 是在於它是利用熱感溫差、非接觸方式測量氣體 之質量流速。
N.
MFC 簡介
? MFC 應用於I C 工業、真空工業、食品工業、化 學工業以及醫療儀器等行業,需要求高精確度、 高穩定度及高品質等氣體流量控制,如:蝕刻、 物理 化學氣相沉積 高穩定度來達成 其應用 物理、化學氣相沉積、高穩定度來達成,其應用 之層面乃遍佈高科技產業。
CO .
LT D
捷胤工業有限公司 NEW JEIN Corp. Corp.

JEI
Intel
Connector
N.
MFC 主要結構
Mass flow sensor
CO .
Bypass
Zero switch
LT D
Control valve Outlet Block
PCB
捷胤工業有限公司 NEW JEIN Corp. Corp.

JEI
? 製程氣體中許多是有腐蝕性或容易液
化的氣體,其與氣體接觸的部份均是 化的氣體 其與氣體接觸的部份均是 以抗腐蝕性強的 SUS‐316L 做為材質, 整顆鑄造而成。
N.
MFC 本體 (Block)
CO .
LT D
捷胤工業有限公司 NEW JEIN Corp. Corp.

MFC视图结构框架分析

MFC文档视图结构框架分析 1:程序的“导火索”---theApp CmyApp theApp; 在声明对象的同时,调用其构造函数。按C++的语法,首先要调用其基类Cwinapp的构造函数. 这个文件主要用于应用程序的一些初始化操作。 class CWinApp : public CWinThread { DECLARE_DYNAMIC(CWinApp) public: // Constructor CWinApp(LPCTSTR lpszAppName = NULL); ………… } CWinApp::CWinApp(LPCTSTR lpszAppName) { if (lpszAppName != NULL) m_pszAppName = _tcsdup(lpszAppName); else m_pszAppName = NULL; // initialize CWinThread state AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE(); AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread; ASSERT(AfxGetThread() == NULL); pThreadState->m_pCurrentWinThread = this; ASSERT(AfxGetThread() == this); m_hThread = ::GetCurrentThread(); m_nThreadID = ::GetCurrentThreadId();

《MFC》综合开发案例分析1

、八 前言 21 世纪最激烈的竞争当属人才的竞争,一个具有多学科知识的复合性人才或许是一个企业发展壮大所不可或缺的重要因素。因此,企业人事管理工作的好坏不但可以直接影响到企业的人力资源管理,而且会间接的影响到企业整体管理。随着社会的发展,科技的进步,计算机的应用在社会各领域中都得到了普及,越来越多的人都感受到利用计算机进行各类管理的科学和便捷;认识到管理信息系统对于管理工作的重要性。利用计算机对企业人事进行管理是必然趋势,人事管理系统是企业管理工作中不可缺少的。所以在这次课程设计中,我选择开发人事管理系统。人事管理系统的功能主要有增加记录,删除记录,筛选记录,排序记录。这就要求它应该能够为用户提供有好美观的窗口界面、充足可靠的信息数据、简单方便的维护手段和灵活多变的查询方式以及快捷而准确的查询结果。所以,对于人事管理系统的设计主要包括数据库的建立、维护以及应用程序的开发两个方面。对于前者而言要求建立起数据一致性及完整性强、数据安全性好的数据库。对于后者而言则要求具备应用程序功能全, 易使用等,运行稳定等特点。因此,拟选用的开发软件是Microsoft 公司出品的Visual C++6.0 MFC 平台进行系统的开发。

目录 1 课题综述 (1) 1.1 人事管理信息系统来源 (1) 1.2 人事管理系统的意义 (1) 1.3 预期目标 (2) 1.4 面对的问题 (2) 1.5 需解决的关键技术等 .............................................. 2 2 人事管理系统分析 (2) 2.1 涉及的基础知识 (3) 2.2 解决问题的基本思路 (11) 2.3 总体方案 (11) 2.4 功能模块框图 (11) 3.1 部署连接(图) (12) 3.2 算法描述 (12) 3.3 详细流程图 .................................................. 14 4 代码编写 4.1 增加记录的代码 . (15) 4.2 删除记录的代码 (16) 4.3 排序记录的代码 (17) 4.4 筛选记录的代码 ................................................ 17 5 运行与测试 3 人事管理系统设计 ....................... 12 15 18

MFC 通用控件祥解解析

CHeadCtrl 表头控制(CHeaderCtrl)通常应用在窗口中的文本或数据的列表之上。一般为数据列的标题,可以包括多个部分,用户可以拖动每个部分并可以控制每列的宽度。表头控制类提供了普通表头控制的基本方法,只有在WINDOWS95以后版本系统中才提供,其方法包含在afxcmn.h文件中,一般与标签控制(CTabCtrl)和列表控制(CListCtrl)组合使用。 (一)表头控制的对象结构 1、表头控制对象的建立方法 CHeaderCtrl &cheaderCtrl 建立表头控制对象 Create 建立表头并绑定对象 CHeaderCtrl::Create的格式如下:BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); 其返回值非零时初始化成功,否则失败。 参数dwStyle用来确定表头控制类型;rect用来确定表头控制的大小和位置;ParentWnd 用来确定表头控制的父窗口;nID用来表示表头控制的标志。 表头控制风格包括: HDS_BUTTONS 表示表头控制外观类似按钮; HDS_HORZ 表示表头控制为水平排列; HDS_VERT 表示表头控制为垂直排列; HDS_HIDDEN 表示表头控制为隐藏模式。 它也可以使用普通类控制风格,包括: CCS_BOTTOM 设置控制位置在父窗口的底部并与父窗口同样宽度; CCS_NODIVIDER 在控制顶部形成两个像素的高亮区; CCS_NOHILITE 在控制顶部形成一个像素的高亮区; CCS_NOMOVEY 在响应WM_SIZE消息时重置大小并水平排列;

MFC9.0类别组织框架图

MFC Hierarchy Chart Part 1 of 3 Classes Derived From CObject

MFC Hierarchy Chart Part 2 of 3 Classes That Derive From CCmdTarget or CWnd

? Microsoft Corporation. All Rights Reserved. Structures Run-Time Object Model Support Synchronization/Thread Support OLE Type Wrappers DHTML Support OLE Automation Types Controls Helper Classes Frame Windows Support Helper Template Manager Support Memory Management State Support Managed Types MFC Hierarchy Chart Part 3 of 3 Classes Not Derived From CObject Legend The Version 9.0 Feature Pack adds new classes to the Microsoft Foundation Class Library. New classes are indicated with a star. Managers, Control Support and Helper classes all provide logical and data support for individual controls or groups of controls. Managers have the word “Manager” in their name. They typically aggregate and coordinate functionality that would otherwise be handled by individual classes. Control Support classes usually provide logical and data support for individual controls. Note: All MFC classes are native C++ classes, with the exception of CWin32Windows, a managed type.

相关主题