1
由於在繪製小圓角矩形時使用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對象提供的方法? –