gdi+ 绘制矩形
时间: 2023-07-04 22:26:11 浏览: 179
你可以使用 GDI+ 中的 `Graphics` 类的 `DrawRectangle` 方法来绘制矩形。具体步骤如下:
1. 创建一个 `Graphics` 对象。可以从控件的 `CreateGraphics` 方法中获取该对象。
2. 创建一个 `Pen` 对象,指定矩形边框的颜色和宽度。
3. 调用 `Graphics` 对象的 `DrawRectangle` 方法,传入 `Pen` 对象和矩形的坐标、宽度、高度等参数。
4. 最后,要释放 `Pen` 对象和 `Graphics` 对象。
下面是一个示例代码:
```c#
private void DrawRectangle()
{
Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.Blue, 2);
Rectangle rect = new Rectangle(10, 10, 100, 50);
g.DrawRectangle(p, rect);
p.Dispose();
g.Dispose();
}
```
这段代码会在当前控件上绘制一个蓝色边框宽度为 2 像素的矩形,左上角坐标为 (10, 10),宽度为 100 像素,高度为 50 像素。
相关问题
gdi+绘制矩形
您可以使用GDI+中的Graphics对象的DrawRectangle方法来绘制矩形。可以通过以下代码片段来实现:
```c++
#include <windows.h>
#include <gdiplus.h>
using namespace Gdiplus;
void DrawRectangle(HDC hdc, int x, int y, int width, int height)
{
Graphics graphics(hdc);
Pen pen(Color(255, 0, 0, 0), 2);
graphics.DrawRectangle(&pen, x, y, width, height);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
HWND hWnd = CreateWindowW(L"STATIC", L"GDI+ Rectangle", WS_VISIBLE | WS_OVERLAPPEDWINDOW, 0, 0, 640, 480, NULL, NULL, hInstance, NULL);
HDC hdc = GetDC(hWnd);
DrawRectangle(hdc, 50, 50, 200, 100);
MSG msg;
while (GetMessageW(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
ReleaseDC(hWnd, hdc);
GdiplusShutdown(gdiplusToken);
return 0;
}
```
在上面的代码中,我们首先创建了一个Graphics对象,然后创建了一个红色的Pen对象,最后使用Graphics对象的DrawRectangle方法来绘制矩形。您可以调整Pen对象的颜色和宽度以满足您的需求。
delphi gdi+绘制圆角矩形
在Delphi中,可以使用GDI(图形设备接口)来绘制圆角矩形。下面是一个简单的示例代码:
```delphi
procedure TForm1.DrawRoundRectWithGDI(Canvas: TCanvas; X, Y, Width,
Height, Radius: Integer);
var
RoundRect: TRect;
begin
RoundRect := Rect(X, Y, X + Width, Y + Height);
Canvas.RoundRect(RoundRect.Left, RoundRect.Top, RoundRect.Right,
RoundRect.Bottom, Radius, Radius);
end;
procedure TForm1.FormPaint(Sender: TObject);
var
RectWidth, RectHeight, RectRadius: Integer;
begin
RectWidth := 200; // 矩形的宽度
RectHeight := 100; // 矩形的高度
RectRadius := 20; // 圆角半径
DrawRoundRectWithGDI(Canvas, (ClientWidth - RectWidth) div 2,
(ClientHeight - RectHeight) div 2, RectWidth, RectHeight, RectRadius);
end;
```
以上代码中,`DrawRoundRectWithGDI`过程接受一个`Canvas`参数,用于在指定区域绘制圆角矩形。`RoundRect`函数将矩形区域的四个角设置为相同的半径来实现圆角效果。在`FormPaint`事件中,我们可以指定希望绘制圆角矩形的位置、大小和半径。
注意,以上示例仅用于说明如何使用GDI绘制圆角矩形,您可以根据需要进行相应的调整和扩展。
阅读全文