ID2D1DeviceContext::CreateImageBrush (ID2D1Image*,constD2D1_IMAGE_BRUSH_PROPERTIES&,ID2D1ImageBrush**) 方法 (d2d1_1.h)
创建图像画笔。 输入图像可以是任何类型的图像,包括位图、效果或命令列表。
语法
HRESULT CreateImageBrush(
[in] ID2D1Image *image,
[in, ref] const D2D1_IMAGE_BRUSH_PROPERTIES & imageBrushProperties,
[out] ID2D1ImageBrush **imageBrush
);
参数
[in] image
类型: ID2D1Image*
要用作图像画笔源的图像。
[in, ref] imageBrushProperties
类型: const D2D1_IMAGE_BRUSH_PROPERTIES
特定于图像画笔的属性。
[out] imageBrush
类型: ID2D1ImageBrush**
此方法返回时,包含指向输入矩形的指针的地址。
返回值
类型: HRESULT
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
HRESULT | 说明 |
---|---|
S_OK | 未发生错误。 |
E_OUTOFMEMORY | Direct2D 无法分配足够的内存来完成调用。 |
E_INVALIDARG | 传递给方法的值无效。 |
注解
图像画笔可用于填充任意几何图形、不透明蒙板或文本。
此示例演示如何使用图像画笔绘制矩形。
HRESULT
CreatePatternBrush(
__in ID2D1DeviceContext *pDeviceContext,
__deref_out ID2D1ImageBrush **ppImageBrush
)
{
HRESULT hr = S_OK;
ID2D1Image *pOldTarget = NULL;
pDeviceContext->GetTarget(&pOldTarget);
ID2D1CommandList *pCommandList = NULL;
hr = pDeviceContext->CreateCommandList(&pCommandList);
if (SUCCEEDED(hr))
{
pDeviceContext->SetTarget(pCommandList);
hr = RenderPatternToCommandList(pDeviceContext);
}
pDeviceContext->SetTarget(pOldTarget);
ID2D1ImageBrush *pImageBrush = NULL;
if (SUCCEEDED(hr))
{
hr = pDeviceContext->CreateImageBrush(
pCommandList,
D2D1::ImageBrushProperties(
D2D1::RectF(198, 298, 370, 470),
D2D1_EXTEND_MODE_WRAP,
D2D1_EXTEND_MODE_WRAP,
D2D1_INTERPOLATION_MODE_LINEAR
),
&pImageBrush
);
}
// Fill a rectangle with the image brush.
if (SUCCEEDED(hr))
{
pDeviceContext->FillRectangle(
D2D1::RectF(0, 0, 100, 100), pImageBrush);
}
SafeRelease(&pImageBrush);
SafeRelease(&pCommandList);
SafeRelease(&pOldTarget);
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1_1.h |
DLL | D2d1.dll |
另请参阅
ID2D1DeviceContext::CreateCommandList
ID2D1DeviceContext::CreateEffect