如何创建纯色画笔

若要创建纯色画笔,请使用 ID2DRenderTarget::CreateSolidColorBrush 方法并指定要绘制的颜色。 某些 CreateSolidColorBrush 重载还允许指定画笔的不透明度。

以下代码演示如何创建纯黄色-绿色画笔来填充正方形,以及绘制方形轮廓的实心黑色画笔。 该代码生成下图所示的输出。

illustration of a rectangle filled with a solid yellow-green color

  1. 声明两个 ID2D1SolidColorBrush 指针:一个用于绘制黑色,一个用于绘制黄色绿色。

        ID2D1SolidColorBrush *m_pBlackBrush;
        ID2D1SolidColorBrush *m_pYellowGreenBrush;
    
  2. 调用 CreateSolidColorBrush 方法来创建画笔:

    if (SUCCEEDED(hr))
    {
        hr = m_pRenderTarget->CreateSolidColorBrush(
            D2D1::ColorF(D2D1::ColorF::Black, 1.0f),
            &m_pBlackBrush
            );
    }
    
    // Create a solid color brush with its rgb value 0x9ACD32.
    if (SUCCEEDED(hr))
    {
        hr = m_pRenderTarget->CreateSolidColorBrush(
            D2D1::ColorF(D2D1::ColorF(0x9ACD32, 1.0f)),  
            &m_pYellowGreenBrush
            );
    }
    
  3. 调用 FillRectangle 方法,使用黄色绿色画笔绘制矩形的内部,并使用黑色画笔绘制矩形轮廓的 DrawRectangle 方法:

    m_pRenderTarget->FillRectangle(&rcBrushRect, m_pYellowGreenBrush);
    m_pRenderTarget->DrawRectangle(&rcBrushRect, m_pBlackBrush, 1, NULL);
    

Direct2D 参考