Come creare un pennello a tinta unita

Per creare un pennello a colori a tinta unita, usare il metodo ID2DRenderTarget::CreateSolidColorBrush e specificare il colore con cui si vuole disegnare. Alcuni degli overload CreateSolidColorBrush consentono anche di specificare l'opacità del pennello.

Il codice seguente illustra come creare un pennello giallo-verde solido per riempire un quadrato e un pennello nero solido per disegnare la struttura del quadrato. Il codice produce l'output illustrato nella figura seguente.

illustrazione di un rettangolo riempito con un colore giallo-verde a tinta unita

  1. Dichiarare due puntatori ID2D1SolidColorBrush : uno per disegnare nero e uno per la pittura verde giallo.

        ID2D1SolidColorBrush *m_pBlackBrush;
        ID2D1SolidColorBrush *m_pYellowGreenBrush;
    
  2. Chiamare il metodo CreateSolidColorBrush per creare i pennelli:

    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. Chiamare il metodo FillRectangle per dipingere l'interno del rettangolo con il pennello verde giallo e il metodo DrawRectangle per disegnare la struttura del rettangolo con il pennello nero:

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

Riferimento a Direct2D