Visual C++ 示例
Visual C++ 示例阐释了跨多种技术的各种功能。
安全说明 |
---|
此代码示例旨在阐释一个概念,并且仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此代码示例,不做任何保证。 |
警告 |
---|
某些示例尚未经过修改以反映 Visual C++ 向导、库和编译器中的变更。然而,它们仍然能演示如何完成相应任务。 |
查看示例联机
在 Visual Studio 中,选择 帮助,示例。
在 示例 对话框的左窗格中,在 Windows 8运行的示例选择 示例、然后 Visual C++,然后在 Windows 8 或早期版本的 windows 上运行的桌面示例的其他类别 Windows 运行时 ,或者之一。
还可以访问 MSDN 代码库 从任何浏览器。
生成并运行示例
在 Visual Studio 中打开解决方案。
在 生成 菜单中,选择 生成。
在 调试 菜单中,选择 开始执行 (不调试)。
有关 Visual C++ 桌面示例的最新版本,请参见 MSDN 网站上的以下页面之一。如果打开从 Visual Studio 的早期版本的项目在 Microsoft Visual Studio 2012 中的 Visual C++的,该项目为您要升级。代码库还可以包含此处未列出的 C++ 示例。
示例说明
ATL 示例 - 高级
示例名称 |
描述 |
---|---|
ActiveDoc |
说明如何实现活动文档服务器 (Active Document Server)。 |
Async |
从 URL 异步下载数据。 |
ATLButton |
创建一个根据自身的状态用三种不同的位图显示自身的按钮。 |
ATLDuck |
说明如何与 ATL 控件一起使用连接点。 |
ATLSecurity |
说明如何使用 ATL 安全类来检查安全设置。 |
ATLTraceTool |
显示由 ATLTRACE2 宏生成的输出。 |
连接 |
演示了如何在多线程环境中实现和使用连接点(IConnectionPointContainer 和 IConnectionPoint 接口)。 |
CThreadPool |
说明如何在应用程序中使用线程池,以及实现线程池可以如何提高应用程序的性能。 |
DCOM |
演示如何从运行于不同计算机上的多个客户端调用在 Windows 服务中实现的 COM 对象。 |
MFCATL |
阐释如何能在 MFC 服务器 EXE 中使用 ATL COM 对象。 |
ATL 示例 - 控件
示例名称 |
描述 |
---|---|
ATLFire |
说明如何用 ATL 生成有窗口控件。 |
CDInfo |
播放 CD 乐曲并在工具提示和饼图显示中显示有关这些曲目的信息。 |
Circ |
创建一个说明属性页并绘制圆形的控件。 |
Polygon |
生成一个实现自定义属性、事件、属性页和对象安全的控件。 |
SubEdit |
创建一个具有超类的 Windows 控件。 |
ATL 示例 - 常规
示例名称 |
描述 |
---|---|
ATLCollections |
演示 ICollectionOnSTLImpl 和 CComEnumOnSTL 的使用及自定义复制策略类的实现。 |
ATLCon |
说明简单的控件容器。 |
ATLSafeArray |
说明如何使用 CComSafeArray 来创建和维护 SAFEARRAY;还说明如何将 SAFEARRAY 从组件传递到脚本。 |
AutoThread |
演示使用 CComAutoThreadModule 类。 |
Beeper |
实现 tearoff 接口 — BSTR 的集合/枚举。 |
CircColl |
使用 ATL 和标准 C++ 库实现对象的集合/枚举。 |
COMMap |
演示带有编译器 COM 支持的 COM 接口映射项宏。 |
CustomString |
说明如何使用 CStringT 的自定义内存分配器来提高多线程应用程序的性能。 |
DispSink |
说明如何在调度接口上使用连接点。 |
ATL 示例 - OLEDB - 使用方
示例名称 |
描述 |
---|---|
CatDB |
显示 OLE DB 提供程序的架构信息,如表和列。 |
DBViewer |
演示一个中级应用程序,它依赖 CManualAccessor 类来完全控制应用程序的数据绑定。 |
DynamicConsumer |
说明如何使用动态访问器和架构行集合类从数据库中读取元数据。 |
MultiRead |
使用多个线程读取数据库中的表。 |
ATL 示例 - OLEDB - 提供方
示例名称 |
描述 |
---|---|
AdvancedPV |
实现可更新的 OLE DB 提供程序。演示一些高级技术。 |
UpdatePV |
实现可更新(读/写)的 OLE DB 提供程序。 |
CLR 示例 - Windows 窗体
示例名称 |
描述 |
---|---|
Scribble (MFC) |
Scribble 示例的 MFC 实现,已被更新和扩展,加入了新的 .NET 功能。 |
Scribble(Windows 窗体) |
Scribble 示例的 Windows 窗体实现,进行了更新和扩展以包括新的 .NET 功能。 |
STLCLR |
演示一些可在使用 STL/CLR 库时使用的功能。 |
ComTypeLibfor7 示例
示例名称 |
描述 |
---|---|
ACDual |
向自动化应用程序添加双重接口 |
ADOSamp |
实现三层客户端/服务器应用程序。 |
AllInOne |
使用 ATL 实现一个服务器,它公开 STL 集合,且由 MFC 应用程序中的编译器 COM 支持控制。 |
COMMap |
演示带有编译器 COM 支持的 COM 接口映射项宏。 |
连接 |
演示了如何在多线程环境中使用和实现连接点(IConnectionPointContainer 和 IConnectionPoint 接口)。 |
DCOM |
演示如何从运行于不同计算机上的多个客户端调用在 Windows 服务中实现的 COM 对象。 |
FreeThrd |
演示带有编译器 COM 支持的多线程客户端和自由线程服务器。 |
InProc |
演示带有编译器 COM 支持的进程内自动化服务器应用程序。 |
Labrador |
实现一个没有任何用户接口的 EXE 服务器。 |
MFCCalc |
演示带有编译器 COM 支持的自动化服务器应用程序。 |
编译器示例 - 常规
示例名称 |
描述 |
---|---|
ccWrapper |
演示如何将 C/C++ 编译器标志从其他编译器映射到 Visual C++ 编译器 (cl.exe) 中。 |
编译器示例 - MASM
示例名称 |
描述 |
---|---|
EuclidStep1 |
纯 C 项目,它说明用于查找最大公约数的欧几里得算法。 |
EuclidStep2 |
EuclidStep1 的扩展,它是混合 C 和 ASM 项目。欧几里得算法的核心从 .c 文件移到 .asm 文件,并且 .c 文件调入 .asm 文件。 |
PrimesStep1 |
纯 C 项目,它说明用于查找质数的埃拉托色尼斯筛法。 |
PrimesStep2 |
PrimesStep1 的扩展,它是混合 C 和 ASM 项目,并且将核心算法移到 .asm 文件。 |
PrimesStep3 |
PrimesStep2 的扩展,它添加一个 C 头文件和一个 .asm 包含文件,分别用来声明外部函数和全局数据结构。 |
CRT 示例
示例名称 |
描述 |
---|---|
CPUID |
确定正在运行的 CPU 的性能。 |
CRT_Dbg1 |
阐释 C 运行库的基本调试功能。 |
CRT_Dbg2 |
说明 C 运行时调试挂钩函数。 |
DFACObjs |
演示如何使用 _CrtDoForAllClientObjects C 运行时函数来循环访问客户端对象的链接列表。 |
报告 |
阐释 C 运行时调试报告函数。 |
RTC |
演示运行时错误检查功能。 |
SecureCRT |
本示例演示了如何升级原本使用已被否决的 CRT 函数的代码,以提高代码安全性。 |
调试示例
示例名称 |
描述 |
---|---|
EEAddIn |
使用“表达式计算器外接程序 API”来扩展本机调试器表达式计算器。 |
事件示例
示例名称 |
描述 |
---|---|
COMEvents |
说明使用 COM 的事件处理。 |
扩展性示例
示例名称 |
描述 |
---|---|
VCProjEngine_CPP |
使用 C++ 以编程方式修改 Visual C++ 项目。 |
VCProjEngine_CS |
使用 C# 以编程方式修改 Visual C++ 项目。 |
VCProjEngine_VB7 |
使用 Visual Basic 以编程方式修改 Visual C++ 项目。 |
合成示例
示例名称 |
描述 |
---|---|
TraceMan |
提供有关与应用程序相关的程序集的信息,以及以可读的形式提供这些程序集在本机合成缓存中的状态的信息。 |
国际示例
示例名称 |
描述 |
---|---|
IME |
说明如何控制输入法编辑器模式和如何实现 IME 级别 3。 |
SatDLL |
演示在 Win32 应用程序中实现多语言资源的推荐方法。 |
UniRes |
说明 Unicode 资源文件的用法。 |
语言示例
示例名称 |
描述 |
---|---|
BirthdayPicker |
演示如何在 C++ 应用程序中使用 .NET Framework 资源机制。它还演示了一些常用的 Window 窗体组件。 |
C++ 语言示例 |
演示 C++ 中功能的重要概念,这些功能支持 .NET 并公开 CLR 的功能。 |
计算器 |
使用 C++ 和 .NET Framework Windows 窗体类实现一个简单的袖珍计算器。 |
数据 |
演示对 SQL 数据库的简单访问。 |
MEDriver |
阐释如何通过从非托管 COM 服务器的类型库自动生成的 .NET Framework 包装使用(从该 COM 服务器激发的)COM 事件。 |
Nile |
演示 ASP.NET Web 窗体和 ASP.Net Web 服务。 |
QStat |
说明如何创建一个 DLL 来包装对 COM 对象的访问并将它的功能向 .NET Framework 客户端公开。 |
Scribble |
演示如何使用 C++/CLI 和 .NET Framework 类开发 Windows 窗体 MDI 应用程序。 |
TilePuzzle |
演示托管组件(用 C++ 和 C# 编写)和本机组件(使用 COM 特性用 C++ 编写)之间的互操作性。 |
MFC 示例 - 高级
示例名称 |
描述 |
---|---|
Collect |
说明 MFC C++ 基于模板的集合类和标准的预生成集合类。 |
Cube |
使用 MFC 设备上下文以及 OpenGL 的资源上下文的 OpenGL 应用程序。 |
DLLHusk |
将基础类库的 DLL 版本与应用程序和自定义 DLL 共享。 |
DLLScreenCap |
可被静态或动态链接到 Microsoft 基础类库的常规 DLL。 |
MTGDI |
使用框架的文档和视图单文档界面 (SDI) 支持,演示在多个线程间共享 GDI 资源。 |
MTMDI |
多线程说明,其中在单独的用户界面线程中处理用户界面事件。 |
MTRecalc |
多线程说明,其中在辅助线程中执行重新计算。 |
Mutexes |
基于对话框的应用程序,它创建两个 CWinThread 对象,并在用户的控制之下将它们用于执行简单任务。 |
Speakn |
说明使用用户定义资源的多媒体声音。 |
MFC 示例 - 控件
示例名称 |
描述 |
---|---|
按钮 |
演示就地活动菜单、常用属性页和“关于”框控件选项的使用。 |
Circ |
说明 ActiveX 控件的基础功能,包括控件绘制、常用和自定义属性、常用和自定义事件、颜色和字体的使用、常用字体属性页、默认属性页和版本控制。 |
CmnCtrl |
演示 wiprlhext 上随 MFC 一起提供的一些新控件,其中包括命令链接按钮 (CButton)、分页控件 (CPagerCtrl)、拆分按钮 (CSplitButton) 和网络地址控件 (CNetAddressCtrl)。 |
Contain |
说明一个可视化编辑容器应用程序。 |
Image |
演示如何使用 MFC 生成能够异步下载数据的 ActiveX 控件。 |
Licensed |
强制使用设计时和运行时许可证的控件。 |
Localize |
具有说明如何将单独的类型库和资源动态链接库 (DLL) 用于本地化的本地化用户界面的控件。 |
NetAddr |
演示 Windows Vista“网络地址验证工具”控件的使用。 |
Pal |
显示调色板颜色的控件。它演示只读属性、永久性 Get/Set 属性、永久性参数化属性和图片属性。 |
推 |
从 Windows 所有者描述的按钮控件创建子类的控件。它演示常用属性、自定义事件和图片容纳器。 |
RegSvr |
说明自注册代码的调用。 |
SpinDial |
一个具有可视的数值调节钮外观的控件,它用来说明属性页数据验证。 |
TestHelp |
具有自己的帮助文件和工具提示的 ActiveX 控件。 |
时间 |
在运行时不可见并按设定的时间间隔引发计时器事件的控件。说明通知函数和环境属性。 |
XList |
从 Windows 列表框创建子类的控件,它显示文本或位图项。 |
MFC 示例 - 常规
示例名称 |
描述 |
---|---|
ClipArt |
CLIPART 目录包含可用于自定义应用程序外观的示例资源。 |
CmnCtrl1 |
说明如何使用 MFC 类(第 1 部分)创建和更改 Windows 公共控件的样式。 |
CmnCtrl2 |
说明如何使用 MFC 类(第 2 部分)创建和更改 Windows 公共控件的样式。 |
CTaskDialog |
演示 CTaskDialog 类的各种功能。 |
CtrlBars |
自定义工具栏和状态栏、对话栏和浮动选项板。 |
CtrlTest |
所有者描述列表框和菜单、自定义控件 (Custom Control)、位图按钮和数值调节钮控件 (Spin Control)。 |
DBVList |
使用 CListView 和 CDaoRecordset 类实现虚拟列表视图功能,该功能可用于列表视图公共控件。 |
DIBLook |
说明 DIB 和调色板的使用。 |
DlgCbr32 |
将工具栏和状态栏添加到基于对话框的应用程序。 |
DlgTempl |
说明对话框模板的动态创建。 |
DockTool |
拖动和浮动“可停靠的”工具栏。 |
Dynamenu |
动态修改菜单中的项列表;处理在编译时未知的命令;以及更新此类命令的状态栏命令提示。 |
FileDlgWatcher |
创建一个自定义对话框,该对话框演示在创建 CFileDialog 时会生成什么事件。 |
Hello |
演示了带有菜单和“关于”框的单个应用程序窗口。 |
HelloApp |
最小的 MFC 示例,该示例演示需要几行代码,以获取要显示在屏幕上的一个窗口。 |
ListHdr |
演示如何使用公共控件 MFC 类 CListCtrl 和 CHeaderCtrl。 |
MDI |
未使用文档和视图的 MDI 应用程序。 |
MDIDocVw |
MDI 示例的更新版本,该版本使用文档/视图体系结构。 |
MMXSwarm |
演示如何使用 CImage、__m64 数据类型和设备无关位图 (DIB)。 |
Modeless |
演示如何将 MFC CDialog 对象作为无模式对话框使用。 |
Multipad |
简单文本编辑器,用户可用它来一次打开和编辑多个文本文件。 |
Npp |
演示如何实现一个类似于“记事本”的界面 (SDI) 应用程序,它允许编辑文本消息并通过 Windows 消息处理 API(或 MAPI)将其发送给其他用户或其他系统。 |
PropDlg |
属性表(对话框)。 |
RowList |
阐释列表视图中公共控件中的整行选择。 |
Scribble |
提供 MFC 广泛功能的简单阐释。 |
SimpleImage |
说明加载、调整大小、转换和保存图像。 |
SnapVw |
说明如何在 MDI 子框架窗口中使用属性页。 |
Spiro |
说明如何使用 CImageList 和如何在需要动画效果的应用程序中使用内存显示上下文的游戏。 |
Tracker |
演示各种 CRectTracker 样式和选项。 |
VariantUse |
说明变量数据类型的使用。 |
ViewEx |
多个视图、滚动视图和拆分窗口。 |
MFC 示例 - Internet
示例名称 |
描述 |
---|---|
DHTMLExplore |
说明如何处理 DHTML 事件和使用 DHTML DDX。 |
HTMLEdit |
包装 Internet Explorer MSHTML 编辑控件。 |
MFCIE |
演示 MFC CHtmlView 和 CReBar 类。 |
Scheduler |
演示如何使用 Visual C++ 库类创建基于 HTML 的对话框。 |
MFC 示例 - OLE
示例名称 |
描述 |
---|---|
ACDual |
说明如何向基于 MFC 的自动化服务器添加双重接口支持。 |
AutoClik |
阐释自动化功能。包括 AUTODRIV,它是驱动 AUTOCLIK 示例应用程序的简单自动化客户端应用程序。 |
CalcDriv |
自动化客户端。 |
DrawCli |
也是 ActiveX 可视化编辑容器的全功能的面向对象的绘图应用程序。 |
HierSvr |
说明具有 OLE 拖放功能的服务器应用程序。 |
InProc |
可作为客户端地址空间中的 DLL 加载的进程中自动化服务器。 |
IPDrive |
驱动 INPROC 示例应用程序的简单自动化客户端应用程序。 |
MFCBind |
显示如何创建活动文档(原来叫做 DocObject)容器。 |
MFCCalc |
实现简单计算器的自动化服务器。 |
OClient |
具有拖放功能的 ActiveX 可视化编辑容器应用程序。 |
OLEView |
通过自定义 OLE 接口实现 OLE 对象浏览器。 |
SuperPad |
演示使用 CEditView 编辑文本的可视化编辑服务器。 |
TstCon |
使用 MFC 的 OLE 嵌入支持实现 ActiveX 控件容器。可以使用 TSTCON 测试 ActiveX 控件、更改它们的属性以及调用它们的方法。 |
WordPad |
使用 MFC 的 Rich Edit 控件支持来创建基本的字处理应用程序。 |
MFC 示例 - 实用工具
示例名称 |
描述 |
---|---|
GUIDGen |
一个简单的基于对话框的 MFC 应用程序,它可生成全局唯一标识符。 |
Makehm |
在资源标识和帮助上下文之间建立映射的控制台应用程序。 |
MFC 示例 - Visual C++ 2008 功能包
示例名称 |
描述 |
---|---|
CustomPages |
演示如何将自定义页面添加到“自定义工具栏”对话框中。 |
DesktopAlertDemo |
演示如何实现桌面通知对话框(类似于即时消息应用程序显示的对话框)。 |
DlgToolTips |
演示如何为对话框上的控件实现高级工具提示。 |
DrawClient |
演示如何将功能区支持集成到面向对象且支持可视编辑容器的绘图应用程序中。 |
DynamicMenu |
演示如何在运行时对菜单栏上的菜单以及弹出菜单进行动态更新。 |
Explorer |
演示如何实现类似于文件资源管理器的文件系统资源管理器,具有类似用户界面元素和功能。 |
IEDemo |
演示如何实现应用程序类似于 Internet Explorer,具有类似用户界面元素和功能。 |
MDITabsDemo |
演示如何创建一个使用新的选项卡式 MDI 文档界面(而不是传统 MDI 子窗口)的应用程序。 |
MenuSubSet |
演示如何在应用程序启动时动态移除特定菜单项和子菜单。 |
MSMoneyDemo |
演示如何使用 MFC 创建与 Microsoft Money 类似的用户界面。 |
MSOffice2007Demo |
演示如何实现编辑器应用程序类似与 Office 2007 应用程序,具有类似用户界面元素和有限类似功能。MSOffice2007Demo 示例实现了与 Office 2007 应用程序相当类似的非常完整的功能区用户界面,某些(但不是全部)功能区元素已连接到应用程序中的功能。 |
NewControls |
演示在 MFC 中实现的许多控件的功能,这些控件包括可自定义的按钮、颜色选取器控件和调色板、字体选择器、图像编辑器、属性网格、屏蔽编辑控件以及 shell 列表和树控件。 |
OutlookDemo |
演示如何创建应用程序类似于 Outlook 2003/2007 类似。 |
OutlookMultiViews |
演示如何在 SDI 应用程序中对单个文档切换多个视图。该示例使用 Outlook 栏控件列出了可用视图,并在它们之间进行切换。 |
OwnerDrawMenu |
阐释如何动态绘制弹出菜单项。 |
PaletteDemo |
阐释如何创建一个具有所有者描述信息区域的多列工具栏。单击“标准”工具栏上的“2”、“3”或“4”按钮,以在运行时更改自定义工具栏的列数。 |
PropSheetDemo |
演示以下类型的属性表控件:简单、选项卡在左边、树控件在左边、OneNote 样式的选项卡、项列表在左边。 |
RebarTest |
演示一个承载工具栏的可自定义的 Rebar 控件。 |
RibbonGadgets |
演示可承载于功能区控件中的各种控件。在主框架底部,您可以找到包含源代码文本的“源代码”窗口,此源代码文本概述了如何创建特定小工具。 |
RibbonMDI |
演示如何将功能区控件与多文档界面结合使用。 |
RollupPane |
演示一个浮动的“信息”窗格,该窗格会自动上卷。您可以按浮动窗格标题上的固定按钮以打开和关闭卷动功能。 |
SetPaneSize |
演示如何以编程方式设置停靠窗格大小。 |
Slider |
演示如何实现一个承载外部控件的工具栏按钮。 |
StateCollection |
演示如何实现为菜单栏、工具栏和停靠窗口保存和加载不同状态的应用程序。 |
StatusBarDemo |
演示如何将各种高级控件添加到状态栏中。 |
TabbedView |
演示如何创建一个包含多个选项卡式视图(如 Excel 工作簿中的选项卡)的视图。 |
TabControl |
使用不同的属性和视觉管理器演示 MFC 选项卡控件及其具有的不同外观。 |
TasksPane |
使用各种属性和视觉管理器演示 MFC 任务窗格类及其不同的外观。 |
ToolbarDateTimePicker |
演示如何将日期/时间选择器控件与工具栏集成 |
ToolTipDemo |
演示如何使用高级 MFC 工具提示功能。 |
TrayMenu |
演示将 MFC 控件条菜单与系统任务栏图标(如显示屏右下角的通知图标)结合使用的功能。 |
VisualStudioDemo |
演示如何实现具有许多的应用程序相同用户界面特性和某些 Visual Studio 的功能。演示的许多 Visual Studio 用户界面元素包括可自定义的停靠菜单栏和工具栏,以及停靠窗口。 |
WordPad |
演示如何实现模仿写字板功能(包括用户界面元素和某些功能)的应用程序。 |
WorkSpaceToolBar |
演示如何将工具栏添加到停靠窗格中。这与 Visual Studio 中的解决方案资源管理器中的工具栏类似。 |
MFC 示例 - Windows 触摸屏
示例名称 |
描述 |
---|---|
GestureDemo |
演示 MFC 中的 Windows 触摸屏支持(需要触摸硬件)。 |
TouchDemo |
演示 MFC 中的 Windows 触摸屏支持(需要触摸硬件)。 |
操作系统示例
示例名称 |
描述 |
---|---|
GetImage |
演示 Windows 图像获取 (WIA) 应用程序编程接口 (API)。 |
Unix 示例
示例名称 |
描述 |
---|---|
Unix - ccWrapper |
演示一个包装,该包装将标志从 Sun Forte 和 gcc 编译器映射到 Microsoft Visual C++ 编译器 (cl.exe) 中。 |