| |
|
|
| Dank Sebastian [...] ici un DrawPic-Nachbau zur Anwendung sur definierbaren DC: KompilierenMarqueSéparation
DrawPic_(long tDC,lBmp,nX,nY,nMode){
long hBitmap=lBmp
mem bm=BITMAP
getObject(hBitmap, sizeof(bm),bm)
int nCopyMode=srcCopy;
select nMode
caseOf 1: nCopyMode = SRCAND
caseOf 2: nCopyMode = SRCPAINT
caseOf 3: nCopyMode = SRCINVERT
caseOf 4: nCopyMode = DSTINVERT
otherWise
nCopyMode = SRCCOPY
endSelect
long hTempDC = CreateCompatibleDC(tDC)
long hOldBmp = SelectObject(hTempDC, hBitmap)
BitBlt(tDC, nX, nY, bm::bmWidth&, bm::bmHeight&, hTempDC, 0, 0, nCopyMode)
SelectObject(hTempDC, hOldBmp)
DeleteDC(hTempDC)
dispose bm t color=#0000FF>}
|
|
|
| |
|
|
|
| et ici qui Grund pour den Nachbau - un geclipptes drawPic: KompilierenMarqueSéparation
drawPicClipped(long tDC,lBmp,nX,nY,nMode,x,y,xx,yy){
long hBitmap=lBmp
add xx,x
add yy,y
mem bm=BITMAP
getObject(hBitmap, sizeof(bm),bm)
int nCopyMode=srcCopy;
select nMode
caseOf 1: nCopyMode = SRCAND
caseOf 2: nCopyMode = SRCPAINT
caseOf 3: nCopyMode = SRCINVERT
caseOf 4: nCopyMode = DSTINVERT
otherWise
nCopyMode = SRCCOPY
endSelect
long hTempDC = CreateCompatibleDC(tDC)
long hOldBmp = SelectObject(hTempDC, hBitmap)
BitBlt(tDC, x,y, xx-x, yy-y, hTempDC,x-nx,y-ny, nCopyMode)
//SelectObject(hTempDC, hOldBmp)
DeleteDC(hTempDC)
//Nachtrag:
//deleteObject hBitmap
//
dispose b
}
qui letzten 4 paramètre donner une Bereich sur den sich qui Ausgabe beschränkt.
Somit peux un großes Bild sur une kleinen Ausschnitt gelegt volonté sans cela plus que qui Ausschnitt réellement überschrieben wird.
qui CopyModus wird hiebei cependant (encore) pas beachtet là qui le contenu des ZielDCs encore pas beachtet wird. Bisher alors seulement srcCopy. |
|
|
| |
|
|
|
Frank Abbing | Am Ende pas seulement den DC, mais aussi qui Bitmap wieder anéantir mittels DeleteObject. et joli dans cette Reihenfolge. |
|
|
| |
|
|
|
| peux Du cela einmal vormachen sodass es aussi encore funktioniert? |
|
|
| |
|
|