none
vb 如何使用 GetRgnData 得到區域數據 RRS feed

  • 問題

  • 想使用GetRgnData 取得一個的bmp檔的區域數據,該怎麼做呢?

    可否大概舉個簡例說明,3Q~~~

    2007年8月20日 上午 02:53

解答

  • 請依公告:張貼文章應注意事項及應提供資訊 提供必要資訊。

     

    另外 GetRgnData 並非是 API 或 .Net 類別內建的方法,有的是 GetRegionData ,內建於 API / MFC / .Net 類別。建議你換個關鍵字搜尋線上手冊。

     

    例如線上手冊這個範例說明:

     

    下列範例是設計用來與 Windows Form 一起使用的,而且它需要 PaintEventArgse,即 Paint 事件處理常式的參數。該程式碼會執行下列動作:

    • 建立矩形,並在畫面上以黑色進行繪製。

    • 使用矩形建立區域。

    • 取得 RegionData。

    • 使用 DisplayRegionData Helper 函式,在畫面上繪製區域資料 (位元組陣列)。

    Visual Basic
    Public Sub GetRegionDataExample(ByVal e As PaintEventArgs)
        ' Create the first rectangle and draw it to the screen in black.
        Dim regionRect As New Rectangle(20, 20, 100, 100)
        e.Graphics.DrawRectangle(Pens.Black, regionRect)
        ' Create a region using the first rectangle.
        Dim myRegion As New [Region](regionRect)
        ' Get the RegionData for this region.
        Dim myRegionData As RegionData = myRegion.GetRegionData()
        Dim myRegionDataLength As Integer = myRegionData.Data.Length
        DisplayRegionData(e, myRegionDataLength, myRegionData)
    End Sub
    ' Helper Function for GetRegionData.
    Public Sub DisplayRegionData(ByVal e As PaintEventArgs, ByVal len As Integer, _
    ByVal dat As RegionData)
        ' Display the result.
        Dim i As Integer
        Dim x As Single = 20
        Dim y As Single = 140
        Dim myFont As New Font("Arial", 8)
        Dim myBrush As New SolidBrush(Color.Black)
        e.Graphics.DrawString("myRegionData = ", myFont, myBrush, _
        New PointF(x, y))
        y = 160
        For i = 0 To len - 1
            If x > 300 Then
                y += 20
                x = 20
            End If
            e.Graphics.DrawString(dat.Data(i).ToString(), myFont, _
            myBrush, New PointF(x, y))
            x += 30
        Next i
    End Sub

     

     

     
    2007年8月20日 上午 03:38
    版主