MÉTHODE ID2D1RenderTarget ::D rawRectangle(constD2D1_RECT_F*,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) (d2d1.h)
Dessine le contour d’un rectangle qui a les dimensions et le style de trait spécifiés.
Syntaxe
void DrawRectangle(
const D2D1_RECT_F *rect,
ID2D1Brush *brush,
FLOAT strokeWidth,
ID2D1StrokeStyle *strokeStyle
);
Paramètres
rect
Type : [in] const D2D1_RECT_F*
Dimensions du rectangle à dessiner, en pixels indépendants de l’appareil.
brush
Type : [in] ID2D1Brush*
Pinceau utilisé pour peindre le trait du rectangle.
strokeWidth
Type : [in] FLOAT
Largeur du trait, en pixels indépendants de l’appareil. La valeur doit être supérieure ou égale à 0,0f. Si ce paramètre n’est pas spécifié, la valeur par défaut est 1.0f. Le trait est centré sur la ligne.
strokeStyle
Type : [in, facultatif] ID2D1StrokeStyle*
Style de trait à peindre ou NULL pour peindre un trait uni.
Valeur de retour
None
Remarques
En cas d’échec de cette méthode, elle ne retourne pas de code d’erreur. Pour déterminer si une méthode de dessin (telle que DrawRectangle) a échoué, case activée le résultat retourné par la méthode ID2D1RenderTarget ::EndDraw ou ID2D1RenderTarget ::Flush.
Exemples
L’exemple suivant utilise un ID2D1HwndRenderTarget pour dessiner et remplir plusieurs rectangles. Cet exemple génère la sortie illustrée dans l’illustration suivante.
// This method discards device-specific
// resources if the Direct3D device disappears during execution and
// recreates the resources the next time it's invoked.
HRESULT DemoApp::OnRender()
{
HRESULT hr = S_OK;
hr = CreateDeviceResources();
if (SUCCEEDED(hr))
{
m_pRenderTarget->BeginDraw();
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
D2D1_SIZE_F rtSize = m_pRenderTarget->GetSize();
// Draw a grid background.
int width = static_cast<int>(rtSize.width);
int height = static_cast<int>(rtSize.height);
for (int x = 0; x < width; x += 10)
{
m_pRenderTarget->DrawLine(
D2D1::Point2F(static_cast<FLOAT>(x), 0.0f),
D2D1::Point2F(static_cast<FLOAT>(x), rtSize.height),
m_pLightSlateGrayBrush,
0.5f
);
}
for (int y = 0; y < height; y += 10)
{
m_pRenderTarget->DrawLine(
D2D1::Point2F(0.0f, static_cast<FLOAT>(y)),
D2D1::Point2F(rtSize.width, static_cast<FLOAT>(y)),
m_pLightSlateGrayBrush,
0.5f
);
}
// Draw two rectangles.
D2D1_RECT_F rectangle1 = D2D1::RectF(
rtSize.width/2 - 50.0f,
rtSize.height/2 - 50.0f,
rtSize.width/2 + 50.0f,
rtSize.height/2 + 50.0f
);
D2D1_RECT_F rectangle2 = D2D1::RectF(
rtSize.width/2 - 100.0f,
rtSize.height/2 - 100.0f,
rtSize.width/2 + 100.0f,
rtSize.height/2 + 100.0f
);
// Draw a filled rectangle.
m_pRenderTarget->FillRectangle(&rectangle1, m_pLightSlateGrayBrush);
// Draw the outline of a rectangle.
m_pRenderTarget->DrawRectangle(&rectangle2, m_pCornflowerBlueBrush);
hr = m_pRenderTarget->EndDraw();
}
if (hr == D2DERR_RECREATE_TARGET)
{
hr = S_OK;
DiscardDeviceResources();
}
return hr;
}
Pour obtenir un didacticiel connexe, consultez Créer une application Direct2D simple.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d2d1.h (inclure D2d1.h) |
Bibliothèque | D2d1.lib |
DLL | D2d1.dll |
Voir aussi
Créer une simple application Direct2D