我定義了兩個picturebox控制元件的坐標范圍 picBack.Scale (0, 0)-(640, 640),picData.Scale (0, 0)-(544, 128),然后把picData里的影像考到picBack里,BitBlt picBack.hDC, 608, 608, 32, 32, picData.hDC, 0, 96, vbSrcCopy
為什么在picBack里沒有顯示在右下角啊,而是要偏上很多
uj5u.com熱心網友回復:
計算機影像坐標系默認原點是左上角uj5u.com熱心網友回復:
上圖或用數字說話。另外你的picturebox的scalemode是使用pixel嗎?
uj5u.com熱心網友回復:
坐標單位問題,VB控制元件默認是twip,API函式用的都是pixel,建議先把控制元件的單位統一成pixeluj5u.com熱心網友回復:
PictureBox.PaintPicture 就是對 BitBlt 的封裝,單位換算都不用你做了。何苦自找麻煩。
uj5u.com熱心網友回復:
我想畫一段時間內的曲線,網上查了一下,但我怎么用不了BITBIT呢uj5u.com熱心網友回復:
在任意位置繪制圖形使用 PaintPicture 方法,可以在表單、圖片框和 Printer 物件上的任何地方,繪制圖形。PaintPicture 方法的語法是:
[object.]PaintPicture pic, destX, destY[, destWidth[, destHeight[, srcX _
[, srcY[, srcWidth[, srcHeight[, Op]]]]]]]
目標 object 指的是表單、圖片框或 Printer 物件,這些地方都是 pic 圖片表現的處所。如果 object 被忽略了,則認為指定的就是當前的表單。pic 引數必須是一個圖片物件,它是由表單或控制元件的 Picture 屬性決定。
destX 和 destY 引數,是按照 objec 的 ScaleMode,該圖象將出現的水平和垂直位置。destWidth 和 destHeight 引數是可選項,用來設定在 object 目標中該圖象的寬度和高度。
srcX 和 srcY 引數是可選項,用來定義 pic 中裁剪區左上角的 x 和 y 坐標。
可選的 Op 引數用來定義當在目標 object 上繪圖時,在圖片上執行的光柵操作(例如,AND 和 XOR)。
PaintPicture 方法可代替 BitBlt Windows API 函式,在將矩形圖形塊從一個地方移到任意另一地方時,它可執行廣泛的各種操作。
例如,可以使用 PaintPicture 方法生成同一位圖的多份副本,并將它們平鋪在表單上。使用這種方法,比在表單上移動圖片控制元件要快。下列代碼是用來平鋪圖片控制元件的 100 份拷貝,并且通過給 destWidth 設定一個負值,可以使每張圖片進行水平翻轉。
For i = 0 To 10
For j = 0 To 10
Form1.PaintPicture picF.Picture, j * _
picF.Width, i * picF.Height, _
picF.Width, -picF.Height
Next j, i
詳細資訊 請參閱《語言參考》的“PaintPicture 方法”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/92487.html
標籤:API
