ID2D1Factory::CreateDCRenderTarget 方法 (d2d1.h)
建立繪製到 Windows 圖形裝置介面的轉譯目標, (GDI) 裝置內容。
語法
HRESULT CreateDCRenderTarget(
[in] const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
[out] ID2D1DCRenderTarget **dcRenderTarget
);
參數
[in] renderTargetProperties
類型: const D2D1_RENDER_TARGET_PROPERTIES*
轉譯模式、圖元格式、遠端選項、DPI 資訊,以及硬體轉譯所需的最低 DirectX 支援。 若要讓裝置內容 (DC) 轉譯目標搭配 GDI 使用,請將 DXGI 格式設定為 DXGI_FORMAT_B8G8R8A8_UNORM ,並將 Alpha 模式設定為 D2D1_ALPHA_MODE_PREMULTIPLIED 或 D2D1_ALPHA_MODE_IGNORE。 如需圖元格式的詳細資訊,請參閱 支援的圖元格式和 Alpha 模式。
[out] dcRenderTarget
類型: ID2D1DCRenderTarget**
當此方法傳回時, dcRenderTarget 會包含 方法所建立 之 ID2D1DCRenderTarget 的指標位址。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
您必須先使用轉譯目標的 BindDC 方法將它與 GDI DC 產生關聯,才能使用 DC 轉譯目標。 請針對每個不同的 DC 執行這項操作,並在您想要繪製的區域大小有所變更時執行此動作。
若要讓 DC 轉譯目標能夠使用 GDI,請將轉譯目標的 DXGI 格式設定為 DXGI_FORMAT_B8G8R8A8_UNORM ,並將 Alpha 模式設定為 D2D1_ALPHA_MODE_PREMULTIPLIED 或 D2D1_ALPHA_MODE_IGNORE。
您的應用程式應該建立轉譯目標一次,並保留應用程式存留期,或直到轉譯目標的 EndDraw 方法傳回 D2DERR_RECREATE_TARGET 錯誤為止。 當您收到此錯誤時,請重新建立轉譯目標 (及其) 建立的任何資源。
範例
下列程式代碼會建立DC轉譯目標。
// Create a DC render target.
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
D2D1_RENDER_TARGET_TYPE_DEFAULT,
D2D1::PixelFormat(
DXGI_FORMAT_B8G8R8A8_UNORM,
D2D1_ALPHA_MODE_IGNORE),
0,
0,
D2D1_RENDER_TARGET_USAGE_NONE,
D2D1_FEATURE_LEVEL_DEFAULT
);
hr = m_pD2DFactory->CreateDCRenderTarget(&props, &m_pDCRT);
在上述程序代碼中, m_pD2DFactory 是 ID2D1Factory的指標, m_pDCRT 是 ID2D1DCRenderTarget的指標。
下一個程式代碼範例會將DC系結至 ID2D1DCRenderTarget。
HRESULT DemoApp::OnRender(const PAINTSTRUCT &ps)
{
// Get the dimensions of the client drawing area.
GetClientRect(m_hwnd, &rc);
// Bind the DC to the DC render target.
hr = m_pDCRT->BindDC(ps.hdc, &rc);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1.h |
程式庫 | D2d1.lib |
Dll | D2d1.dll |