函數:GetStringWidthPixel ,傳回字串寬度的點數
引數 | 型態 | 說明 |
hDC | Long | 裝置代號 |
hString | String | 字串內容 |
範例:
Debug.Print GetStringWidthPixel(Me.hDC, "中文測試")
注意:在 Form 、 PictureBox 或 Printer 用 TextWidth 比較方便,其關係式如下 (.ScaleMode= 1)
Me.TextWidth("中文測試") = GetStringWidthPixel(Me.hDC, "中文測試") * Screen.TwipsPerPixelX
函數:GetStringHeightPixel ,傳回字串高度的點數
引數 | 型態 | 說明 |
hDC | Long | 裝置代號 |
hString | String | 字串內容 |
範例:
Debug.Print GetStringHeightPixel(Me.hDC, "中文測試")
注意:在 Form 、 PictureBox 或 Printer 用 TextHeight 比較方便,其關係式如下 (.ScaleMode= 1)
Me.TextHeight("中文測試") = GetStringHeightPixel(Me.hDC, "中文測試") * Screen.TwipsPerPixelY
函數:myObjectFloodFill
引數 | 型態 | 說明 |
hObj | Object | 物件名稱,如 Form、PictureBox 或 Printer |
X | Single | X 座標 |
Y | Single | Y 座標 |
FillColor | Long | 填色 |
wFillType | Long | 填滿方式,預設為 FLOODFILLSURFACE |
範例:
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
summy = myObjectFloodFill(Form1, X, Y, Int(Rnd * &H1000000))
End Sub
函數:IsObjIntersectRect ,若有重疊部分則傳回是,否則傳回否,物件應有 Left , Top , Width , Height 等屬性,若無相對應屬性,則無法判斷亦傳回否
引數 | 型態 | 說明 |
hObj1 | Object | 物件變數1 |
hObj2 | Object | 物件變數2 |
說明:
兩矩形交集演算法可在相關的計算圖學相關參考書籍找到,本網頁僅介紹透過 Windows API 如何處理,不對計算圖學在矩形交集快速演算法多做介紹
範例:
Debug.Print IsObjIntersectRect(Picture1, Text1)
Debug.Print IsObjIntersectRect(Command1, Text1)
函數:VBEllipseEx
引數 | 型態 | 說明 |
stdPic | Object | 標準繪圖物件,如 Form、PictureBox 或 Printer |
myPoint | cPoint | 點物件或點型態陣列 |
hForeColor | Long | 前景色,或說橢圓顏色 |
hFillColor | Long | 背景色,或說填滿顏色 |
說明:
在 VB 中可以採用 Circle 方法繪製橢圓,然 Circle 僅能繪製正交於直角座標系之橢圓,無法繪製傾斜的橢圓,本網頁循 PowerPoint 及 Visio 等軟體繪製方式,以 PolyBezier 這個 API 繪製,本函數之子函數與其他函數共用,目前尚未有足夠的空檔整理,暫不說明,另本函數每組均有三個子函數,分別為 WMF/EMF 及標準繪圖物件使用,目前僅介紹標準繪圖物件採用之函數供參考
範例:
Public Type cPoint ' 可自行定義物件類別或使用者自訂型態
X As Double ' x 座標
Y As Double ' y 座標End Type
Private Sub Form_DblClick()
ReDim tp(1 To 4) As cPoint
tp(1).X = 0: tp(1).Y = 3000
tp(2).X = 4000: tp(2).Y = 0
tp(3).X = 6000: tp(3).Y = 1500
tp(4).X = 2000: tp(4).Y = 4500VBEllipseEx Me, tp(), QBColor(1), QBColor(3)
End Sub
註:本函式使用繪圖函式庫基本函數及設定頗多,若有缺漏導致不能執行,敬請告知
函數:VBPolygon
引數 | 型態 | 說明 |
stdPic | Object | 標準繪圖物件,如 Form、PictureBox 或 Printer |
myPoint | cPoint | 點物件或點型態陣列 |
hForeColor | Long | 前景色,或說橢圓顏色 |
hFillColor | Long | 背景色,或說填滿顏色 |
說明:
在 VB 中並未包裝多邊形相關繪製函數,但多邊形繪製屬 FAQ 級的問題,各相關資列均有列示,本網頁原不擬展示範例,由於網友需求,故展示個人採用之方法,本函數之子函數與其他函數共用,目前尚未有足夠的空檔整理,暫不說明,另本函數每組均有三個子函數,分別為 WMF/EMF 及標準繪圖物件使用,目前僅介紹標準繪圖物件採用之函數供參考
範例:
Public Type cPoint ' 可自行定義物件類別或使用者自訂型態
X As Double ' x 座標
Y As Double ' y 座標End Type
Private Sub Form_DblClick()
ReDim tp(1 To 5) As cPoint
tp(1).x = 0: tp(1).y = 3000
tp(2).x = 4000: tp(2).y = 0
tp(3).x = 6000: tp(3).y = 1500
tp(4).x = 5000: tp(4).y = 3500
tp(5).x = 2000: tp(5).y = 4500
VBPolygon Me, tp(), QBColor(12), QBColor(2)End Sub
註:本函式使用繪圖函式庫基本函數及設定頗多,若有缺漏導致不能執行,敬請告知
函數:VBTextOut
引數 | 型態 | 說明 |
stdPic | Object | 標準繪圖物件,如 Form、PictureBox 或 Printer |
hString | String | 輸出字串內容 |
x | Varinat | 輸出位置,針對該物件之 x 座標 |
y | Varinat | 輸出位置,針對該物件之 y 座標 |
hAngle | Varinat | 可省略,文字角度,以 360 度為單位,最小解析度為 0.1 度 |
taFlags | Long | 可省略,文字對齊方式 |
說明:
在 VB 中並未包裝任意角度字型輸出相關繪製函數,但任意角度字型輸出繪製屬 FAQ 級的問題,各相關資列均有列示,本網頁原不擬展示範例,由於網友需求,故展示個人採用之方法,本函數之子函數與其他函數共用,目前尚未有足夠的空檔整理,暫不說明,另本函數每組均有三個子函數,分別為 WMF/EMF 及標準繪圖物件使用,目前僅介紹標準繪圖物件採用之函數供參考
範例:
Private Sub Form_Click()
baseX = 1000
baseY = 1000VBTextOut Form1, "Basic, 培基語言!", baseX - 800, baseY - 500, 90, TA_RIGHT
VBTextOut Form1, "Basic, 培基語言!", baseX, baseY, 180, TA_CENTER + TA_BASELINE
VBTextOut Form1, "Basic, 培基語言!", baseX - 100, baseY - 100, 135Form1.Line (baseX - 25, baseY - 25)-(baseX + 25, baseY + 25), vbRed, B
End Sub
圖中,方塊為參考對齊旗標設定之用。
註:本函式使用繪圖函式庫基本函數及設定頗多,若有缺漏導致不能執行,敬請告知