DIRECT3D 属性示例:演示 Direct3D 的使用

更新:2007 年 11 月

DIRECT3D 属性示例创建一个使用 Direct3D 图形库绘制旋转三角形的控件。

安全说明:

提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。

获取示例和安装示例的说明:

  • 在 Visual Studio 的“帮助”菜单上,单击“示例”。

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。

生成并运行示例

生成并运行此示例

  1. 打开解决方案文件 Direct3D.sln。

  2. 从“生成”菜单中单击“生成解决方案”。

  3. 示例生成后,在 Web 浏览器中打开 Direct3D.htm。

可以在 ActiveX 控件测试容器中测试控件。有关访问测试容器和用它来测试控件的详细信息,请参见用测试容器测试属性和事件

属性

此示例使用下面的属性:

coclass、default、dll、dual、helpstring、implements_category、module、name、object、pointer_default、progid、registration_script、support_error_info、uuid、vi_progid

关键字

此示例使用以下关键字:

Apartment、ATLASSERT、ATLTRACE、AtlWaitWithMessageLoop、BEGIN_COM_MAP、BEGIN_MSG_MAP、BEGIN_OBJECT_MAP、BEGIN_PROPERTY_MAP、CComCoClass、CComControl、CComControlBase::InPlaceActivate、CComModule::GetClassObject、CComModule::GetLockCount、CComModule::Init、CComModule::RegisterServer、CComModule::Term、CComModule::UnregisterServer、CComObjectRoot、CException::ReportError、CoGetInterfaceAndReleaseStream、CoInitialize、COM_INTERFACE_ENTRY、COM_INTERFACE_ENTRY_IMPL、COM_INTERFACE_ENTRY_IMPL_IID、CoMarshalInterThreadInterfaceInStream、CopyMemory、CoUninitialize、CreatePalette、CreateRectRgn、CreateThread、D3DEXECUTEBUFFERDESC、DDSURFACEDESC、DDSURFACEDESC、DECLARE_GET_CONTROLLING_UNKNOWN、DECLARE_REGISTRY_RESOURCEID、DirectDrawCreate、DirectDrawCreateClipper、DisableThreadLibraryCalls、END_OBJECT_MAP、GetClientRect、GetOurWindow、GetSystemPaletteEntries、IDataObjectImpl、IDirect3D::CreateLight、IDirect3D::CreateMaterial、IDirect3D::CreateViewport、IDirect3DDevice::AddViewport、IDirect3DDevice::BeginScene、IDirect3DDevice::CreateMatrix、IDirect3DDevice::DeleteMatrix、IDirect3DDevice::EndScene、IDirect3DDevice::Execute、IDirect3DViewport::AddLight、IDirect3DViewport::CreateMatrix、IDirect3DViewport::SetBackground、IDirect3DViewport::SetMatrix、IDirectDraw2::EnumDevices、IDirectDraw2::SetCooperativeLevel、IDirectDrawClipper::SetHWnd、IDirectDrawSurface2::AddAttachedSurface、IDirectDrawSurface2::GetSurfaceDesc、IDirectDrawSurface2::Restore、IDirectDrawSurface2::SetClipper、IDispatchImpl、IObjectSafetyImpl、IOleControlImpl、IOleInPlaceActiveObjectImpl、IOleInPlaceObjectWindowlessImpl、IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate、IOleInPlaceObjectWindowlessImpl::SetObjectRects、IOleObjectImpl、IPersistStorageImpl、IPersistStreamInitImpl、IProvideClassInfo2Impl、IQuickActivateImpl、ISupportErrorInfo、IViewObjectExImpl、LPD3DDEVICEDESC、LPD3DINSTRUCTION、LPD3DPROCESSVERTICES、LPD3DSTATE、LPD3DTRIANGLE、LPD3DVERTEX、LPDIRECTDRAWCLIPPER、MessageBox、OBJECT_ENTRY、OffsetRect、OnEraseBackground、PALETTEENTRY、QueryInterface、RenderScene、SelectClipRgn、SetPalette、WindowFromDC、ZeroMemory

说明:

其中某些示例(如此示例)尚未经过修改以反映 Visual C++ 向导、库和编译器中所做的更改,但仍演示了如何完成所需的任务。

请参见

其他资源

ATL 属性示例