| |
|
|
| Dank Sebastian [...] hier una DrawPic-Nachbau a Anwendung en definierbaren DC: KompilierenMarcaSeparación
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>}
|
|
|
| |
|
|
|
| Und hier el Grund para el Nachbau - una geclipptes drawPic: KompilierenMarcaSeparación
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
}
El letzten 4 Parámetro geben una Zona en el el Edición beschränkt.
Somit kann una großes Bild en una pequeña Ausschnitt gelegt voluntad sin el más que el Ausschnitt tatsächlich überschrieben se.
Der CopyModus se hiebei sin embargo (todavía) no beachtet como el Inhalt des ZielDCs todavía no beachtet se. Bisher also sólo srcCopy. |
|
|
| |
|
|
|
Frank Abbing | Am Ende no sólo el DC, pero auch el Mapa de bits otra vez zerstören mittels DeleteObject. Und schön en dieser Reihenfolge. |
|
|
| |
|
|
|
| ¿Puede Usted el una vez vormachen sodass lo auch todavía funktioniert? |
|
|
| |
|
|