Draws the outline of a rectangle that has the specified dimensions and stroke style.
Syntax
void DrawRectangle( const D2D1_RECT_F &rect, [in] ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, [in, optional] ID2D1StrokeStyle *strokeStyle = NULL );
Parameters
- rect [ref]
-
Type: const D2D1_RECT_F
The dimensions of the rectangle to draw, in device-independent pixels.
- brush [in]
-
Type: ID2D1Brush*
The brush used to paint the rectangle's stroke.
- strokeWidth
-
Type: FLOAT
A value greater than or equal to 0.0f that specifies the width of the rectangle's stroke. The stroke is centered on the rectangle's outline.
- strokeStyle [in, optional]
-
Type: ID2D1StrokeStyle*
The style of stroke to paint, or NULL to paint a solid stroke.
Return value
This method does not return a value.
Remarks
When this method fails, it does not return an error code. To determine whether a drawing method (such as DrawRectangle) failed, check the result returned by the ID2D1RenderTarget::EndDraw or ID2D1RenderTarget::Flush method.
Examples
The following example uses an ID2D1HwndRenderTarget to draw and fill several rectangles. For the complete example, see the Draw Rectangle Example. This example produces the output shown in the following illustration.

// This method discards device-specific // resources if the Direct3D device dissapears 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; }
For a related tutorial, see Creating a Simple Direct2D Application.
Requirements
|
Minimum supported client | Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | Windows Store apps] |
|---|---|
|
Minimum supported server | Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | Windows Store apps] |
|
Header |
|
|
Library |
|
|
DLL |
|
See also
- ID2D1RenderTarget
- Creating a Simple Direct2D Application
- Draw Rectangle Example
- How to Draw and Fill a Basic Shape
Send comments about this topic to Microsoft
Build date: 11/29/2012