ID2D1RenderTarget::DrawRectangle methods
Overload list
| Method | Description |
|---|---|
| DrawRectangle(D2D1_RECT_F&,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) |
Draws the outline of a rectangle that has the specified dimensions and stroke style. |
| DrawRectangle(D2D1_RECT_F*,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) |
Draws the outline of a rectangle that has the specified dimensions and stroke style. |
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
|
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
