1
我知道的方法有兩種:在VB6中將事物繪製到picturebox的各種方法是什麼?每種方法的優點是什麼?
- 使用.line區段,.circle等方法
- 使用塊傳送
- PaintPicture(從來沒有使用過它,發現它在谷歌)
還有其他人嗎?
使用某個系統比其他系統有什麼優勢? (速度,反鋸齒等)
我知道的方法有兩種:在VB6中將事物繪製到picturebox的各種方法是什麼?每種方法的優點是什麼?
還有其他人嗎?
使用某個系統比其他系統有什麼優勢? (速度,反鋸齒等)
線條和圓圈用於矢量圖形。線繪製直線,矩形和正方形。圓圈繪製橢圓和圓圈。您可以控制這些方法是輪廓還是填充,線條寬度,前景是背景顏色。
BitBlt是一個Win32 API調用(不是一個內置的VB功能),它允許你寫一個位圖到設備上下文(一個PictureBox有)。有許多不同的模式可以讓你將你正在繪製的背景的像素與圖形的像素進行交互。
PaintPicture()方法本質上是一個圍繞BitBlt的COM包裝,位圖句柄被Picture對象替換。
還有PSet,它只是繪製一個點是屏幕上的指定位置。我想你還可以包含Print,它允許你繪製文本(可能包含圖形字體)。
如果您轉到Win32 API,還有許多其他圖形函數用於繪製其他形狀,如弧,多邊形和貝塞爾曲線。但是,它們通常比內置的VB方法更難使用。
至於那些在別人的優點,它基本上是:
您能否評論這些各種方法是否可以進行抗鋸齒?我猜不是本地的VB方法。有速度差嗎?我可以混合使用本地VB方法和BitBlt/Win32 API嗎?就像VB的Line,Circle等方法更快一樣,但我也想支持貝塞爾曲線,是否可以同時使用兩者? – TimFoolery
他們都沒有在本地進行抗鋸齒。你最好的選擇是畫大和重新取樣。 – Deanna
@MarkBertenshaw我最近使用了Win32API中的SetPixelV,我發現它比'.Pset'好很多。你沒有提到這個特定的API函數,但我想我會提到它是非常值得使用的。之後您必須使用'.Refresh'來更新圖片框的顯示圖像,但它仍然以兩倍的速度結束。 – TimFoolery