中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
方法和屬性

在 Visual Basic 6.0 中,可以使用多種圖形方法和屬性在 FormPictureBox 控件上繪制圖形。Visual Basic 6.0 中的圖形是以 Windows 圖形設(shè)備接口 (GDI) API 為基礎(chǔ)的。

在 Visual Basic 2005 中,圖形由封裝 GDI+ API 的 System.Drawing 命名空間提供。GDI+ 對 Visual Basic 6.0 的圖形功能進(jìn)行了擴(kuò)展,但是方法不可兼容。

概念差異

在 Visual Basic 6.0 中,圖形方法僅應(yīng)用于 Form 對象和 PictureBox 控件。

在 Visual Basic 2005 中,圖形方法可應(yīng)用于窗體和支持 Paint 事件的任何控件,包括 PictureBox、PanelGroupBox 控件。此外,圖形方法也可用于任何支持 OwnerDraw 屬性的控件,包括 ListViewTreeViewButton 控件。

AutoRedraw 屬性

在 Visual Basic 6.0 中,圖形方法可從任何事件過程調(diào)用;AutoRedraw 屬性用于當(dāng)從 Paint 事件以外的事件調(diào)用圖形方法時保持圖形。

在 Visual Basic 2005 中,圖形方法應(yīng)僅從 Paint 事件過程調(diào)用,或?qū)τ谝恍┧姓呙枋龅目丶?,從各種 Draw 事件過程(DrawItem、DrawSubItem 等)調(diào)用。AutoRedraw 屬性不再被支持,并且不是必需的,因為 PaintDraw 事件可以自動保持圖形。

ClipControls 屬性

在 Visual Basic 6.0 中,ClipControls 屬性用于控制窗體或控件的繪制。設(shè)置為 True 時,僅重新繪制新公開的區(qū)域,這從理論上來說可提高性能。

Visual Basic 2005 中沒有 ClipControls 屬性的等效項;GDI+ 的性能增強(qiáng)和最新的視頻適配器使該屬性不再是必需的。

DrawMode 屬性

在 Visual Basic 6.0 中,DrawMode 屬性控制在一個圖案上繪制另一個圖案時圖形對象的顏色。此屬性僅影響單色或低分辨率顯示器(256 色或更低)。

DrawMode 屬性在 Visual Basic 2005 中沒有等效項;當(dāng)前的顯示器不再需要此屬性。

DrawStyle 屬性

在 Visual Basic 6.0 中,DrawStyle 屬性控制使用 Line 方法繪制的線的外觀。如果 DrawWidth 屬性設(shè)置為大于 1 的值,則 DrawStyle 屬性不起作用,線將始終為實(shí)線。

在 Visual Basic 2005 中,通過設(shè)置 DrawLine 方法使用的 System.Drawing.Pen 類的 DashStyle 屬性來控制線的外觀;線寬與此屬性無關(guān)。

DrawWidth 屬性

在 Visual Basic 6.0 中,DrawWidth 屬性決定線的粗細(xì)(以像素為單位);DrawWidth 屬性通常在執(zhí)行圖形方法前設(shè)置。

在 Visual Basic 2005 中,System.Drawing.Pen 控件的 Pen.Width 屬性決定線的粗細(xì);可以在創(chuàng)建 Pen 時作為參數(shù)設(shè)置 Width 屬性,或在創(chuàng)建 Pen 后設(shè)置 Pen.Width。如果未指定 Pen.Width 屬性,則默認(rèn)值為 1 個像素。

Image 屬性

在 Visual Basic 6.0 中,窗體或 PictureBox 控件的 Image 屬性返回位圖的句柄;該句柄可賦給 Picture 屬性,或者作為一個值傳遞給 Windows API 調(diào)用。

在 Visual Basic 2005 中,位圖不再具有句柄;實(shí)際位圖本身作為 Bitmap 類型的對象傳遞。Bitmap 控件可賦給 PictureBox 控件的 Image 屬性,但不能傳遞給 Windows API 調(diào)用。

Line 方法

在 Visual Basic 6.0 中,通過指定左上角和右下角坐標(biāo)以及可選參數(shù) B,可使用Line 方法來繪制矩形。FillColor 屬性用于以某種純色填充矩形,而 FillStyle 屬性以交叉線圖案填充矩形。

在 Visual Basic 2005 中,DrawRectangles 方法用于繪制矩形邊框,FillRectangle 方法用于填充矩形。FillRectangleBrush 對象作為參數(shù)。SolidBrush 替換 FillColor 屬性,HatchBrush 類的成員替換 FillStyle 屬性。

Point 方法

在 Visual Basic 6.0 中,窗體或 PictureBox 控件的 Point 方法用于返回位于指定點(diǎn)的像素的顏色值。盡管 Point 方法可用于不包含圖片的窗體或控件,但它最常用于從賦給 Picture 屬性的某個位圖中檢索顏色。

在 Visual Basic 2005 中,Point 方法不再存在??梢允褂?M:System.Drawing.Bitmap.GetPixel(System.Int32,System.Int32) 方法從位圖檢索顏色值。對于不包含圖片的窗體或控件,可以查詢 BackColor 屬性。

Print 方法

在 Visual Basic 6.0 中,Print 方法用于在窗體或 PictureBox 控件上顯示文本。用于顯示文本的字體由窗體或控件的 Font 屬性決定,顏色由 ForeColor 屬性決定。Print 方法不提供對文本位置的控制,只能水平顯示文本。

在 Visual Basic 2005 中,使用 DrawString 方法顯示文本。字體由 Font 對象決定,顏色由 Brush 決定;兩者都作為參數(shù)傳遞給 DrawString 方法。DrawString 方法還具有可決定文本起始位置的 XY 參數(shù)。還有一個利用 StringFormat 對象的可選 Format 參數(shù),可用來垂直顯示文本。

PSet 方法

在 Visual Basic 6.0 中,PSet 方法用于更改窗體或 PictureBox 控件上的像素顏色。如果 DrawWidth 屬性設(shè)置為大于 1 的值,PSet 方法將繪制實(shí)心圓。如果使用了被省略的 ForeColor ,可通過另一個可選參數(shù)指定顏色。

在 Visual Basic 2005 中,沒有 PSet 方法的等效項。若要更改窗體或 PictureBox 控件上單個像素的顏色,可使用 DrawEllipse 方法繪制一個高度和寬度都為 1 個像素的圓。若要復(fù)制 PSetDrawWidth 大于 1 時的功能,請使用 FillEllipse 方法。

針對圖形的代碼更改

下面的代碼示例演示 Visual Basic 6.0 和 Visual Basic 2005 在編碼方法上的不同之處。

繪制普通線條

下面的代碼演示如何在運(yùn)行時在窗體上繪制線條。Visual Basic 6.0 示例使用 Line 方法;它以起始點(diǎn)和結(jié)束點(diǎn)的 X 和 Y 坐標(biāo)以及顏色(可選)作為參數(shù)。Visual Basic 2005 示例使用 DrawLine 方法,該方法以 Pens 對象以及起始點(diǎn)和結(jié)束點(diǎn)的 X 和 Y 坐標(biāo)作為參數(shù)。

注意

在 Visual Basic 6.0 中,默認(rèn)度量單位是緹數(shù);在 Visual Basic 2005 中,默認(rèn)度量單位是像素。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            ' Draw a solid black line 200 twips from the top of the form.            Line (0, 200) - (ScaleWidth, 200), vbBlack            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint(ByVal sender As Object, ByVal e _            As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            ' Draw a solid black line 25 pixels from the top of the form.            e.Graphics.DrawLine(Pens.Black, 0, 25, Me.Width, 25)            End Sub            

繪制虛線

下面的代碼演示如何在運(yùn)行時在窗體上繪制虛線。在 Visual Basic 6.0 示例中,DrawStyle 屬性決定線條的外觀。Visual Basic 2005 示例使用 Pen 對象設(shè)置 DashStyle 屬性以決定外觀。

注意

在 Visual Basic 6.0 中,默認(rèn)度量單位是緹數(shù);在 Visual Basic 2005 中,默認(rèn)度量單位是像素。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            ' Draw a dotted line 200 twips from the top of the form.            Me.DrawStyle = vbDot            Line (0, 200) - (ScaleWidth, 200), vbBlack            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint1(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            ' Draw a dotted black line 25 pixels from the top of the form.            Dim LPen As New System.Drawing.Pen(System.Drawing.Color.Black)            LPen.DashStyle = Drawing2D.DashStyle.Dot            e.Graphics.DrawLine(LPen, 0, 25, Me.Width, 25)            End Sub            

控制線條粗細(xì)

下面的代碼演示如何在運(yùn)行時在窗體上繪制不同粗細(xì)的線條。Visual Basic 6.0 示例使用 DrawWidth 屬性。Visual Basic 2005 示例使用 Pens 對象的 Width 屬性。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            ' Draw a line with a thickness of 1 pixel.            DrawWidth = 1            Line (0, 200)-(ScaleWidth, 200), vbBlack            ' Draw a line with a thickness of 5 pixels.            DrawWidth = 5            Line (0, 400)-(ScaleWidth, 400), vbBlack            ' Draw a line with a thickness of 10 pixels.            DrawWidth = 10            Line (0, 600)-(ScaleWidth, 600), vbBlack            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint2(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            ' Draw a line with a thickness of 1 pixel.            Dim TPen As New System.Drawing.Pen(System.Drawing.Color.Black, 1)            e.Graphics.DrawLine(TPen, 0, 25, Me.Width, 25)            ' Draw a line with a thickness of 5 pixels.            TPen.Width = 5            e.Graphics.DrawLine(TPen, 0, 50, Me.Width, 50)            ' Draw a line with a thickness of 10 pixels.            TPen.Width = 10            e.Graphics.DrawLine(TPen, 0, 75, Me.Width, 75)            End Sub            

繪制圓

下面的代碼演示如何在運(yùn)行時在窗體上繪制圓。在 Visual Basic 6.0 示例中使用 Circle 方法;它以中心點(diǎn)的 X 和 Y 坐標(biāo)、半徑以及顏色(可選)作為參數(shù)。Visual Basic 2005 示例使用 DrawEllipse 方法,該方法以 Pen 對象、邊界矩形左上角的 X 和 Y 坐標(biāo)以及寬度和高度作為參數(shù)。

注意

在 Visual Basic 6.0 中,默認(rèn)度量單位是緹數(shù);在 Visual Basic 2005 中,默認(rèn)度量單位是像素。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            ' Draw a 1000 twip diameter red circle            Circle (500, 500), 500, vbRed            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint3(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            ' Draw a 70 pixel diameter red circle.            e.Graphics.DrawEllipse(Pens.Red, 0, 0, 70, 70)            End Sub            

繪制實(shí)心矩形

下面的代碼演示如何在運(yùn)行時在窗體上繪制兩個矩形,一個以純色填充,另一個以交叉線圖案填充。在 Visual Basic 6.0 示例中,FillColorFillStyle 屬性與 Line 方法一起使用。使用 B 參數(shù)調(diào)用 Line 方法繪制矩形。

Visual Basic 2005 示例使用 Graphics.Rectangle 方法繪制輪廓,以及以 Brush 對象作為參數(shù)的 Graphics.FillRectangle 方法。本示例使用 SolidBrushHatchBrush 兩個控件。

注意

在 Visual Basic 6.0 中,默認(rèn)度量單位是緹數(shù);在 Visual Basic 2005 中,默認(rèn)度量單位是像素。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            ' Draw a solid red rectangle.            FillColor = vbRed            FillStyle = vbSolid            Line (10, 10)- (1000, 500), vbRed, B            ' Draw a rectangle filled with a crosshatch pattern.            FillColor = vbBlack            FillStyle = vbCross            Line (10, 500)- (1000, 1000), vbBlack, B            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint4(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            ' Draw a solid red rectangle.            Dim SBrush As New System.Drawing.SolidBrush _            (System.Drawing.Color.Red)            e.Graphics.DrawRectangle(Pens.Red, 2, 2, 70, 40)            e.Graphics.FillRectangle(SBrush, 2, 2, 70, 40)            ' Draw a rectangle filled with a crosshatch pattern.            Dim HBrush As New System.Drawing.Drawing2D.HatchBrush( _            System.Drawing.Drawing2D.HatchStyle.Cross, _            System.Drawing.Color.Black, System.Drawing.Color.Transparent)            e.Graphics.DrawRectangle(Pens.Black, 2, 40, 70, 40)            e.Graphics.FillRectangle(HBrush, 2, 40, 70, 40)            End Sub            

在窗體上顯示圖像

下面的代碼演示運(yùn)行時在窗體上顯示圖像的圖形方法。Visual Basic 6.0 示例使用 PaintPicture 方法。Visual Basic 2005 示例使用 DrawImage 方法。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            ' Create a stdPicture object.            Dim Pict1 As New stdPicture            Pict1 = LoadPicture("C:\Windows\Greenstone.bmp")            PaintPicture Pict1, 0, 0            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint5(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            ' Create a Bitmap object.            Dim Pict1 As New Bitmap("C:\Windows\Greenstone.bmp")            e.Graphics.DrawImage(Pict1, 0, 0)            End Sub            

在窗體上顯示文本

下面的代碼演示運(yùn)行時在窗體上顯示文本字符串的圖形方法。Visual Basic 6.0 示例使用 Print 方法。Visual Basic 2005 示例使用 DrawString 方法。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            Me.Font.Size = 24            Me.Font.Bold = True            Me.ForeColor = vbRed            Print "Hello World!"            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint6(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            Dim TextFont As New System.Drawing.Font("Arial", 24, FontStyle.Bold)            Dim TextBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Red)            e.Graphics.DrawString("Hello World!", TextFont, TextBrush, 10, 10)            TextFont.Dispose()            TextBrush.Dispose()            End Sub            

決定字符串的高度和寬度

下面的代碼演示運(yùn)行時決定窗體上的字符串大小,然后在周圍繪制矩形的圖形方法。Visual Basic 6.0 示例使用 TextHeightTextWidth 方法。Visual Basic 2005 示例使用 MeasureString 方法,該方法返回一個 SizeF 結(jié)構(gòu)。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            Me.Font.Size = 24            Me.Font.Bold = True            Me.ForeColor = vbRed            Print "Hello World!"            Line (0, 0)-(TextWidth("Hello World!"), _            TextHeight("Hello World!")), vbBlack, B            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint7(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            Dim TextFont As New System.Drawing.Font("Arial", 24, FontStyle.Bold)            Dim TextBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Red)            e.Graphics.DrawString("Hello World!", TextFont, TextBrush, 10, 10)            Dim TextSize As New System.Drawing.SizeF            TextSize = e.Graphics.MeasureString("Hello World!", TextFont)            e.Graphics.DrawRectangle(Pens.Black, 10, 10, TextSize.Width, TextSize.Height)            TextFont.Dispose()            TextBrush.Dispose()            End Sub            

繪制單個像素

下面的示例演示運(yùn)行時更改窗體上單個像素顏色的圖形方法。Visual Basic 6.0 示例使用 PSet 方法。Visual Basic 2005 示例使用 DrawEllipse 方法,其 HeightWidth 參數(shù)均設(shè)置為 1。

注意    在 Visual Basic 6.0 中,默認(rèn)度量單位是緹數(shù);在 Visual Basic 2005 中,默認(rèn)度量單位是像素。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            Me.DrawWidth = 1            PSet (1000, 1000), vbRed            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint8(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            e.Graphics.DrawEllipse(Pens.Red, 70, 70, 1, 1)            End Sub            

決定單個像素的顏色

下面的代碼演示在運(yùn)行時確定窗體上圖像中指定位置像素的顏色,然后以該顏色繪制矩形的圖形方法。Visual Basic 6.0 示例使用 Point 方法檢索顏色值。Visual Basic 2005 示例使用 GetPixel 方法。

注意

在 Visual Basic 6.0 中,默認(rèn)度量單位是緹數(shù);在 Visual Basic 2005 中,默認(rèn)度量單位是像素。

 
復(fù)制代碼
' Visual Basic 6.0            Private Sub Form_Paint()            Dim PixelColor As Long            Picture1.Picture = LoadPicture("C:\Windows\Greenstone.bmp")            PixelColor = Picture1.Point(10, 10)            FillColor = PixelColor            Line (0, 0)-(100, 500), PixelColor, B            End Sub
Visual Basic 
復(fù)制代碼
' Visual Basic 2005            Private Sub Form1_Paint9(ByVal sender As Object, ByVal e As _            System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint            Dim Pict1 As New Bitmap("C:\Windows\Greenstone.bmp")            Picture1.Image = Pict1            Dim PixelColor As Color = Pict1.GetPixel(4, 4)            Dim PixelBrush As New SolidBrush(PixelColor)            e.Graphics.FillRectangle(PixelBrush, 0, 0, 100, 100)            End Sub            

圖形屬性和方法等效項

下表列出了 Visual Basic 6.0 圖形屬性和方法及它們在 Visual Basic 2005 中的等效項。

Visual Basic 6.0 Visual Basic 2005 等效項

AutoRedraw 屬性

新的實(shí)現(xiàn)。若要永久保存圖形,請在 Paint 事件中放入圖形方法。

Circle 方法

DrawEllipse 方法

ClipControls 屬性

新的實(shí)現(xiàn)。ClipControls 屬性不再是必需的。

Cls 方法

Clear 方法

CurrentX 屬性

各種圖形方法的 x 參數(shù)。例如,DrawRectangle(pen, x, y, width, height)

CurrentY 屬性

各種圖形方法的 y 參數(shù)。例如,DrawRectangle (pen, x, y, width, height)

DrawMode 屬性

新的實(shí)現(xiàn)。DrawMode 屬性不再是必需的。

DrawStyle 屬性

DashStyle 屬性

DrawWidth 屬性

Width 屬性

FillColor 屬性

SolidBrush 對象

FillStyle 屬性

HatchBrush 對象

HasDC 屬性

新的實(shí)現(xiàn)。GDI+ 不再需要設(shè)備上下文。

HDC 屬性

新的實(shí)現(xiàn)。GDI+ 不再需要設(shè)備上下文。

Image 屬性

新的實(shí)現(xiàn)。

Line 方法

DrawLine 方法

PaintPicture 方法

DrawImage 方法

Point 方法

無直接等效項。對于位圖,請使用 Bitmap.GetPixel。對于窗體或控件,請使用 BackColor 屬性。

Print 方法

DrawString 方法

Pset 方法

DrawEllipse、FillEllipse 方法

TextHeight、TextWidth 屬性

MeasureString 方法

升級說明

應(yīng)用程序從 Visual Basic 6.0 升級到 Visual Basic 2005 時,圖形方法并不升級,并會在代碼中插入警告。由于 GDI 和 GDI+ 之間的巨大差異,現(xiàn)有的所有圖形代碼都需要重寫。

請參見

任務(wù)

自定義繪制用戶控件示例

其他資源

圖形概述(Windows 窗體)
圖形編程入門
關(guān)于 GDI+ 托管代碼
使用托管圖形類

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB-對象使用
vb實(shí)驗報告(答案)
VB電腦課實(shí)驗
《Visual Basic程序設(shè)計教程(第3版)》第1章VisualBasic入門
15秋浙大《程序設(shè)計基礎(chǔ)(VB)》在線作業(yè)答案
VB考試試卷含答案
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服