如何创建位图画笔

若要创建位图画笔,请使用 ID2D1RenderTarget::CreateBitmapBrush 方法并指定位图画笔属性。 某些重载使你能够指定画笔属性。 下面的代码演示如何创建一个位图画笔来填充正方形,并创建一个纯黑色画笔来绘制方形的轮廓。 代码生成以下屏幕截图中显示的输出。

注意

从 Windows 8 开始,可以使用 ID2D1DeviceContext 接口上的 CreateBitmapBrush 方法创建 ID2D1BitmapBrush1 而不是 ID2D1BitmapBrushID2D1BitmapBrush1 将高质量缩放模式添加到位图画笔。

 

填充有植物位图的正方形的屏幕截图

  1. 声明 ID2D1BitmapBrush 类型的变量。

        ID2D1BitmapBrush *m_pBitmapBrush;
    
  2. 从资源加载位图。 有关详细信息,请参阅 如何从资源加载位图

    // Create the bitmap to be used by the bitmap brush.
    if (SUCCEEDED(hr))
    {
        hr = LoadResourceBitmap(
            m_pRenderTarget,
            m_pWICFactory,
            L"FERN",
            L"Image",
            &m_pBitmap
            );
    
  3. 选择扩展模式 (D2D1_EXTEND_MODE) 和内插模式 ( 图画笔D2D1_BITMAP_INTERPOLATION_MODE) ,然后调用 CreateBitmapBrush 方法来创建画笔,如以下代码所示。

    hr = m_pRenderTarget->CreateBitmapBrush(
        m_pBitmap,
        &m_pBitmapBrush
        );
    

Direct2D 参考