Что нового

Прямоугольник со скругленными углами

musicstashall

Знающий
Сообщения
322
Репутация
7
Народ, помогите нарисовать прямоугольник со скругленными углами. Только рамку и заполненный. Фон полупрозрачный. С помощью GDIP
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Переделал пример из этой темы:
Код:
#include <GDIPlus.au3>
#include <WinAPIGdiDC.au3>

_GDIPlus_Startup()

$hWnd = GUICreate("Rounded Rectangles")
GUISetState()

$hDC = _WinAPI_GetDC($hWnd)
$hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC)
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFFC080)
$hPen = _GDIPlus_PenCreate(0xFFFF0000, 5)

_GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)
_GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)
_GDIPlus_GraphicsDrawRoundRect($hGraphics, 8, 8, 384, 100, 16, $hBrush, $hPen)
_GDIPlus_GraphicsDrawRoundRect($hGraphics, 8, 116, 384, 80, 20, 0, $hPen)
_GDIPlus_GraphicsDrawRoundRect($hGraphics, 8, 204, 188, 188, 20, $hBrush)
_GDIPlus_GraphicsDrawRoundRect($hGraphics, 204, 204, 188, 188, 60, $hBrush, $hPen)

While GUIGetMsg() <> -3
WEnd

_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_PenDispose($hPen)
_WinAPI_ReleaseDC($hWnd, $hDC)
_GDIPlus_Shutdown()

Func _GDIPlus_GraphicsDrawRoundRect($hGraphics, $iX, $iY, $iWidth, $iHeight, $iRadius, $hBrush = 0, $hPen = 0)
  Local $hPath = _GDIPlus_PathCreate()
  _GDIPlus_PathAddArc($hPath, $iX + $iWidth - ($iRadius * 2), $iY, $iRadius * 2, $iRadius * 2, 270, 90)
  _GDIPlus_PathAddArc($hPath, $iX + $iWidth - ($iRadius * 2), $iY + $iHeight - ($iRadius * 2), $iRadius * 2, $iRadius * 2, 0, 90)
  _GDIPlus_PathAddArc($hPath, $iX, $iY + $iHeight - ($iRadius * 2), $iRadius * 2, $iRadius * 2, 90, 90)
  _GDIPlus_PathAddArc($hPath, $iX, $iY, $iRadius * 2, $iRadius * 2, 180, 90)
  _GDIPlus_PathCloseFigure($hPath)
  If $hBrush Then _GDIPlus_GraphicsFillPath($hGraphics, $hPath, $hBrush)
  If $hPen Then _GDIPlus_GraphicsDrawPath($hGraphics, $hPath, $hPen)
  _GDIPlus_PathDispose($hPath)
EndFunc


Вот ещё пример:
 
Верх