GDI +でDrawArc関数を使用すると、小さな丸い四角形を描くときにあまり正確ではないので、代わりにRoundRectを使用しています。CreatePenを使用して中空矩形を描画するにはどうすればよいですか?
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Dim hDC As IntPtr = e.Graphics.GetHdc
Dim rc As New Rectangle(10, 10, 64, 24)
Dim hPen As IntPtr = Win32.CreatePen(Win32.PenStyle.PS_SOLID, 0, _
ColorTranslator.ToWin32(Color.Green))
Dim hOldPen As IntPtr = Win32.SelectObject(hDC, hPen)
Call Win32.RoundRect(hDC, rc.Left, rc.Top, rc.Right, rc.Bottom, 10, 10)
Win32.SelectObject(hDC, hOldPen)
Win32.DeleteObject(hPen)
e.Graphics.ReleaseHdc(hDC)
MyBase.OnPaint(e)
End Sub
これは素敵な丸い四角形を描画しますが、それはまた私が消去されているにしたくないものを消去し、白いブラシでそれを記入します。
矩形の内側を消去しないでこれを描画するにはどうすればよいですか?
なぜ、pinvokeとGDI + APIを使用していますか。なぜ、.net Graphicオブジェクトで提供されるメソッドを使用するだけではありませんか? –