2012-07-03 44 views

回答

4

線條和圓圈用於矢量圖形。線繪製直線,矩形和正方形。圓圈繪製橢圓和圓圈。您可以控制這些方法是輪廓還是填充,線條寬度,前景是背景顏色。

BitBlt是一個Win32 API調用(不是一個內置的VB功能),它允許你寫一個位圖到設備上下文(一個PictureBox有)。有許多不同的模式可以讓你將你正在繪製的背景的像素與圖形的像素進行交互。

PaintPicture()方法本質上是一個圍繞BitBlt的COM包裝,位圖句柄被Picture對象替換。

還有PSet,它只是繪製一個點是屏幕上的指定位置。我想你還可以包含Print,它允許你繪製文本(可能包含圖形字體)。

如果您轉到Win32 API,還有許多其他圖形函數用於繪製其他形狀,如弧,多邊形和貝塞爾曲線。但是,它們通常比內置的VB方法更難使用。

至於那些在別人的優點,它基本上是:

  • VB功能與Win32 API的特點:簡單易用與功率
  • 矢量圖形與位圖圖形:更靈活,但需要更多的編程而不是簡單的,但使用更多的內存。
+0

您能否評論這些各種方法是否可以進行抗鋸齒?我猜不是本地的VB方法。有速度差嗎?我可以混合使用本地VB方法和BitBlt/Win32 API嗎?就像VB的Line,Circle等方法更快一樣,但我也想支持貝塞爾曲線,是否可以同時使用兩者? – TimFoolery

+0

他們都沒有在本地進行抗鋸齒。你最好的選擇是畫大和重新取樣。 – Deanna

+1

@MarkBertenshaw我最近使用了Win32API中的SetPixelV,我發現它比'.Pset'好很多。你沒有提到這個特定的API函數,但我想我會提到它是非常值得使用的。之後您必須使用'.Refresh'來更新圖片框的顯示圖像,但它仍然以兩倍的速度結束。 – TimFoolery

相關問題