代碼:
成都創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括網(wǎng)站設(shè)計(jì)、做網(wǎng)站、APP應(yīng)用開(kāi)發(fā)、重慶小程序開(kāi)發(fā)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營(yíng)銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來(lái)大量新的創(chuàng)意。
Public?Class?Form1
'*********************************************************************???
'作者:章魚(yú)哥,QQ:3107073263?群:309816713???????
'如有疑問(wèn)或好的建議請(qǐng)聯(lián)系我,大家一起進(jìn)步?????
'*********************************************************************?????
'繪制圓角矩形函數(shù)
Private?Function?GetRoundedRectPath(ByVal?rect?As?Rectangle,?ByVal?radius?As?Integer)?As?System.Drawing.Drawing2D.GraphicsPath
rect.Offset(-1,?-1)
Dim?RoundRect?As?New?Rectangle(rect.Location,?New?Size(radius?-?1,?radius?-?1))
Dim?path?As?New?System.Drawing.Drawing2D.GraphicsPath
path.AddArc(RoundRect,?180,?90)?????'左上角
RoundRect.X?=?rect.Right?-?radius???'右上角
path.AddArc(RoundRect,?270,?90)
RoundRect.Y?=?rect.Bottom?-?radius??'右下角
path.AddArc(RoundRect,?0,?90)
RoundRect.X?=?rect.Left?????????????'左下角
path.AddArc(RoundRect,?90,?90)
path.CloseFigure()
Return?path
End?Function
'繪制矩形
Private?Sub?DrawingRect()
Dim?g?As?Graphics?=?Me.CreateGraphics
Dim?Pen?As?New?Pen(Brushes.DarkRed,?2)
Dim?Hei?As?Integer?=?Me.Height
Dim?Wid?As?Integer?=?Me.Width
'矩形的位置和長(zhǎng)寬隨著窗體的變化而改變
Dim?Rec?As?New?Rectangle(Int(Wid?/?5),?Int(Hei?/?5),?Int(Wid?/?2),?Int(Hei?/?2))
'??g.DrawRectangle(Pen,?Rec)
'清楚現(xiàn)有的矩形
g.Clear(Me.BackColor)
g.DrawPath(Pen,?GetRoundedRectPath(Rec,?30))
End?Sub
Private?Sub?Form1_Paint(ByVal?sender?As?System.Object,?ByVal?e?As?System.Windows.Forms.PaintEventArgs)?Handles?MyBase.Paint
DrawingRect()
End?Sub
Private?Sub?Form1_SizeChanged(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.SizeChanged
Me.Invalidate()?'此函數(shù)可引發(fā)Paint事件
End?Sub
End?Class
效果截圖:
原窗口:
縮小后:
請(qǐng)用 API 函數(shù) RoundRect。
例子(點(diǎn)擊窗體,畫圓角矩形):
Private Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Sub Form_Click()
Call RoundRect(Me.hdc, 10, 10, 110, 110, 10, 10)
End Sub
參數(shù):
hdc 設(shè)備上下文。比如 Me.hDC,Picture1.hDC就可以。
X1,Y1 左上角
X2,Y2 右下角
X3,Y3 圓角內(nèi)偏移(即圓角半徑,0表示直角)
上面的坐標(biāo)什么的都以像素計(jì),不同于VB默認(rèn)的Twip
用Circle 畫圓 圓弧 橢圓 都 具體參照面詳細(xì)說(shuō)明 Circle(一000,一000),500,吧,-陸,-三 一000,一000,圓坐標(biāo) 500,半徑 面別代表起始角,終止角,短軸比率 吧,詳細(xì)點(diǎn),Circle都說(shuō)遍 象畫圓、橢圓或弧 語(yǔ) object.Circle [Step] (x, y), radius, [color, start, end, aspect] Circle 語(yǔ)象限定符部: 部 描述 object 選 象表達(dá)式其值應(yīng)用于列表象object 省略具焦點(diǎn)窗體作object Step 選關(guān)鍵字 指定圓、橢圓或弧相于前 object CurrentX CurrentY 屬性提供坐標(biāo) (x, y) 必需 Single (單精度浮點(diǎn)數(shù))圓、橢圓或弧坐標(biāo)object ScaleMode 屬性決定使用度量單位 radius 必需Single (單精度浮點(diǎn)數(shù))圓、橢圓或弧半徑 object ScaleMode 屬性決定使用度量單位 color 選Long (整型數(shù))圓輪廓 RGB 顏色省略則使用 ForeColor 屬性值用 RGB 函數(shù)或 QBColor 函數(shù)指定顏色 start, end 選 Single (單精度浮點(diǎn)數(shù))弧、或部圓或橢圓畫完start end 指定(弧度單位)弧起點(diǎn)終點(diǎn)位置其范圍 -二 pi 二 pi 起點(diǎn)缺省值0; 終點(diǎn)缺省值二 * pi aspect 選 Single (單精度浮點(diǎn)數(shù))圓縱橫尺寸比缺省值 一.0何屏幕都產(chǎn)標(biāo)準(zhǔn)圓(非橢圓) 說(shuō)明 想要填充圓使用圓或橢圓所屬象 FillColor FillStyle 屬性封閉圖形才能填充封閉圖形包括圓、橢圓、或扇形 畫部圓或橢圓 start 負(fù)Circle 畫半徑 start并角度處理; end 負(fù)Circle 畫半徑 end并角度處理Circle 總逆針()向繪圖 畫圓、橢圓或弧線段粗細(xì)取決于 DrawWidth 屬性值背景畫圓取決于 DrawMode DrawStyle 屬性值 畫角度 0 扇形要畫條半徑(向右畫水平線段)給 start 規(guī)定負(fù)值要給 0 .省略語(yǔ)間某參數(shù)能省略隔參數(shù)逗號(hào)您指定參數(shù)面逗號(hào)省略 Circle 執(zhí)行CurrentX CurrentY 屬性參數(shù)設(shè)置點(diǎn) 能用 With匛nd With 語(yǔ)句塊 -------------------------------------------------------------------------------- Circle 示例 示例用Circle 窗體央畫許同圓要運(yùn)行示例代碼放入窗體 General 部按 F5 并單擊窗體 Sub Form_Click () Dim CX, CY, Radius, Limit ' Declare variable. ScaleMode = 三 ' 像素單位 CX = ScaleWidth / 二 ' X 位置 CY = ScaleHeight / 二 ' Y 位置 If CX CY Then Limit = CY Else Limit = CX For Radius = 0 To Limit ' 半徑 Circle (CX, CY), Radius,RGB(Rnd * 二55, Rnd * 二55, Rnd * 二55) Next Radius End Sub -------------------------------------------------------------------------------