2011-03-17 23 views

答えて

1

数年後...しかし、これはあなたの質問に対する答えかもしれません。

Public Sub DrawRoundedRectangle(ByVal objGraphics As Graphics, _ 
           ByVal m_intxAxis As Integer, _ 
           ByVal m_intyAxis As Integer, _ 
           ByVal m_intWidth As Integer, _ 
           ByVal m_intHeight As Integer, _ 
           ByVal m_diameter As Integer) 



    'Dim g As Graphics 
    Dim BaseRect As New RectangleF(m_intxAxis, m_intyAxis, m_intWidth, 
            m_intHeight) 
    Dim ArcRect As New RectangleF(BaseRect.Location, 
           New SizeF(m_diameter, m_diameter)) 
    'top left Arc 
    objGraphics.DrawArc(Pens.Black, ArcRect, 180, 90) 
    objGraphics.DrawLine(Pens.Black, m_intxAxis + CInt(m_diameter/2), 
         m_intyAxis, 
         m_intxAxis + m_intWidth - CInt(m_diameter/2), 
         m_intyAxis) 

    ' top right arc 
    ArcRect.X = BaseRect.Right - m_diameter 
    objGraphics.DrawArc(Pens.Black, ArcRect, 270, 90) 
    objGraphics.DrawLine(Pens.Black, m_intxAxis + m_intWidth, 
         m_intyAxis + CInt(m_diameter/2), 
         m_intxAxis + m_intWidth, 
         m_intyAxis + m_intHeight - CInt(m_diameter/2)) 

    ' bottom right arc 
    ArcRect.Y = BaseRect.Bottom - m_diameter 
    objGraphics.DrawArc(Pens.Black, ArcRect, 0, 90) 
    objGraphics.DrawLine(Pens.Black, m_intxAxis + CInt(m_diameter/2), 
         m_intyAxis + m_intHeight, 
         m_intxAxis + m_intWidth - CInt(m_diameter/2), 
         m_intyAxis + m_intHeight) 

    ' bottom left arc 
    ArcRect.X = BaseRect.Left 
    objGraphics.DrawArc(Pens.Black, ArcRect, 90, 90) 
    objGraphics.DrawLine(Pens.Black, 
         m_intxAxis, m_intyAxis + CInt(m_diameter/2), 
         m_intxAxis, 
         m_intyAxis + m_intHeight - CInt(m_diameter/2)) 

End Sub 

コードから、矩形を描画するためのパラメータを指定してください。

+0

非常に良い!本当にありがとう!どのくらいの年数が遅れても、より良い答えが常に受け入れられます。 ;) – FreeSnow

関連する問題