怎样用VB。NET实现一个圆形窗口,并可以在此窗口上贴图?急,请速回,谢了
as title 问题点数:0、回复次数:4Top
1 楼lz305(猎人【有型有款,有车有房。唯独没老婆】)回复于 2003-11-01 09:10:17 得分 0
下面的例子通过重载Form1窗体的OnPaint()方法绘制GDI图形
Protected Overrides Sub onpaint(ByVal e As System.Windows.Forms.PaintEventArgs)
注释://///////////绘制任意直线
Dim g As Graphics = e.Graphics
Dim mypen As Pen = New Pen(Color.Red, 2)
g.DrawLine(mypen, 100, 100, 10, 10)
注释://///////////绘制矩形(任意直线构成的封闭图形)
Dim point1 As PointF = New PointF(100F, 100F)
Dim point2 As PointF = New PointF(200F, 100F)
Dim point3 As PointF = New PointF(200F, 200F)
Dim point4 As PointF = New PointF(100F, 200F)
Dim curvepoints As PointF() = {point1, point2, point3, point4}
g.DrawPolygon(New Pen(Color.Blue, 2), curvepoints)
注释:////////////文本表示
Dim FFamily As FontFamily = New FontFamily("Arial")
Dim font As Font = New Font(FFamily, "20", FontStyle.Bold, FontStyle.Italic, GraphicsUnit.Pixel)
Dim text As String = "I love you!"
Dim solidbrush As SolidBrush = New SolidBrush(Color.Red)
Dim pr As PointF = New PointF(100, 10)
e.Graphics.DrawString(text, font, solidbrush, pr)
注释:////////////平面绘制
Dim rec As RectangleF = New RectangleF(10, 10, 200, 100)
g.DrawPie(mypen, rec, 150, 150)
注释:///////////封闭图形,0.7应该是个圆
g.DrawClosedCurve(mypen, curvepoints, 0.7, Drawing.Drawing2D.FillMode.Alternate)
注释:///////////大家自己试试看吧
g.DrawArc(mypen, 300, 300, 200, 200, 100, 100)
g.DrawCurve(mypen, curvepoints)
g.DrawBezier(mypen, 50, 50, 100, 50, 100, 100, 50, 100)
g.DrawBeziers(mypen, curvepoints)
注释://////////这可是一个圆
Dim rec1 As RectangleF = New RectangleF(10, 10, 100, 100)
g.DrawEllipse(mypen, rec1)
注释://////////这是一个椭圆
Dim rec2 As RectangleF = New RectangleF(10, 10, 200, 100)
g.DrawEllipse(mypen, rec2)
End Sub
Top
2 楼terryxin(南方窗口)回复于 2003-11-01 13:51:40 得分 0
UPTop
3 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-11-01 14:09:49 得分 0
http://www.csdn.net/develop/read_article.asp?id=18774Top
4 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-11-01 14:10:20 得分 0
Dim IsNormalRegion As Boolean = True
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
If (IsNormalRegion) Then
'构造一个GraphicsPath对象实例
Dim Graphics As New System.Drawing.Drawing2D.GraphicsPath()
Dim intHeight As Integer = Me.Size.Height
Dim intWidth As Integer = Me.Size.Width
'定义内矩形的左上角坐标
Dim RectTop As Integer = 100
'在窗体上绘制一个大椭圆,左上角的坐标取为(0,0)
Graphics.AddEllipse(0, 0, intWidth, intHeight)
'再绘制一个小矩形
Dim AddRect As New Rectangle(RectTop, RectTop, intHeight - (RectTop * 2), intHeight - (RectTop * 2))
Graphics.AddRectangle(AddRect)
'设置窗口的可见区域
Me.Region = New Region(Graphics)
Else
Me.Region = Nothing
End If
IsNormalRegion = Not IsNormalRegion
End Sub
Top




