StretchBlt
StretchBlt
DODATKOWE FORMANTY:
PictureBox - Picture1
PictureBox - Picture2
CO JEST CO:
hdc - uchwyt docelowego obiektu (np. picture2.hdc)
X, Y - współrzędne lewego górnego rogu obszaru docelowego
(żeby wiadomo było gdzie zacząć wklejać)
nWidth, nHeight - wymiary (szerokość i wysokość) obrazka po
skopiowiowaniu
hSrcDC - uchwyt źródłowego obiektu, skąd pochodzi bitmapa
xSrc, ySrc - współrzędne lewego górnego rogu obszaru
źródłowego
nSrcWidth, nSrcHeight - wymiary (szerokość i wysokość)
kopiowanego fragmentu - oryginału
dwRop - ustalamy jak mają być łączony obraz źródłowy z
docelowym za pomocą operacji logicznej.
Jeśli wszystko jest w porządku funkcja zwraca wartość
różną od zera, a jeśli coś jest nie tak to zostanie zwrócone zero.
ZOBACZ TEŻ: BitBlt
| SetStretchBltMode | STAŁE RASTRA
KOD MODUŁU:
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As
Long, ByVal X As Long, _
ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long)
As Long
Private Declare Function SetStretchBltMode Lib "gdi32" (ByVal hdc As Long, _
ByVal nStretchMode As Long) As Long
Const SRCCOPY = &HCC0020
Const STRETCH_DELETESCANS = 3
KOD FORMY:
Private Sub Command1_Click()
Dim X As Long
Dim i As Integer
Dim H1 As Integer, W1 As Integer
Dim hdc1 As Long, hdc2 As Long
W1 = Picture1.ScaleWidth 'szerokość źródłowego obrazka
H1 = Picture1.ScaleHeight 'wysokość źródłowego obrazka
hdc1 = Picture1.hdc
hdc2 = Picture2.hdc
X = SetStretchBltMode(Picture2.hdc, STRETCH_DELETESCANS)
If X Then
For i = 0 To 100
X = StretchBlt(hdc2, 0,
0, W1 + i, H1 + i, hdc1, 0, 0, W1, H1, SRCCOPY)
Picture2.Refresh 'żeby
były widoczne jakieś efekty
DoEvents
Next
End If
End Sub
COŚ DLA LENIWYCH: StretchBlt.zip
Wyszukiwarka
Podobne podstrony:
Stretching w biznesie Rozwijanie dzialalnosci w lepszych i gorszych czasach strebiwięcej podobnych podstron