Condividi tramite


CDC::StretchBlt

Copia una bitmap da un rettangolo di origine in un rettangolo di destinazione, allungando o comprimendo la bitmap se necessario per adattarla alle dimensioni del rettangolo di destinazione.

BOOL StretchBlt( 
   int x, 
   int y, 
   int nWidth, 
   int nHeight, 
   CDC* pSrcDC, 
   int xSrc, 
   int ySrc, 
   int nSrcWidth, 
   int nSrcHeight, 
   DWORD dwRop  
);

Parametri

  • x
    Specifica la coordinata x (in unità logiche) dell'angolo superiore sinistro del rettangolo di destinazione.

  • y
    Specifica la coordinata y (in unità logiche) dell'angolo superiore sinistro del rettangolo di destinazione.

  • nWidth
    Specifica la larghezza (in unità logiche) del rettangolo di destinazione.

  • nHeight
    Specifica l'altezza (in unità logiche) del rettangolo di destinazione.

  • pSrcDC
    Specifica il contesto del dispositivo di origine.

  • xSrc
    Specifica la coordinata x (in unità logiche) dell'angolo superiore sinistro del rettangolo di origine.

  • ySrc
    Specifica la coordinata y (in unità logiche) dell'angolo superiore sinistro del rettangolo di origine.

  • nSrcWidth
    Specifica la larghezza (in unità logiche) del rettangolo di origine.

  • nSrcHeight
    Specifica l'altezza (in unità logiche) del rettangolo di origine.

  • dwRop
    Specifica l'operazione raster da eseguire. I codici dell'operazione raster definiscono in che modo GDI combina i colori nelle operazioni di output che includono un pennello corrente, una possibile bitmap di origine e una bitmap di destinazione. Il parametro può avere uno dei valori seguenti:

    • BLACKNESS   Applica il nero a tutto l'output.

    • DSTINVERT   Inverte la bitmap di destinazione.

    • MERGECOPY   Combina il modello e la bitmap di origine utilizzando l'operatore booleano AND.

    • MERGEPAINT   Combina la bitmap di origine invertita con la bitmap di destinazione utilizzando l'operatore booleano OR.

    • NOTSRCCOPY   Copia la bitmap di origine invertita nella destinazione.

    • NOTSRCERASE   Inverte il risultato della combinazione delle bitmap di destinazione e di origine utilizzando l'operatore booleano OR.

    • PATCOPY   Copia il modello nella bitmap di destinazione.

    • PATINVERT   Combina la bitmap di destinazione con il modello utilizzando l'operatore booleano XOR.

    • PATPAINT   Combina la bitmap di origine invertita con il modello utilizzando l'operatore booleano OR. Combina il risultato di questa operazione con la bitmap di destinazione utilizzando l'operatore booleano OR.

    • SRCAND   Combina i pixel delle bitmap di destinazione e di origine utilizzando l'operatore booleano AND.

    • SRCCOPY   Copia la bitmap di origine nella bitmap di destinazione.

    • SRCERASE   Inverte la bitmap di destinazione e ne combina il risultato con la bitmap di origine utilizzando l'operatore booleano AND.

    • SRCINVERT   Combina i pixel delle bitmap di destinazione e di origine utilizzando l'operatore booleano XOR.

    • SRCPAINT   Combina i pixel delle bitmap di destinazione e di origine utilizzando l'operatore booleano OR.

    • WHITENESS   applica il bianco a tutto l'output.

Valore restituito

Se la bitmap viene tracciata è diverso da zero; in caso contrario, 0.

Note

La funzione utilizza la modalità di adattamento del contesto del dispositivo di destinazione (impostata da SetStretchBltMode) per determinare come allungare o comprimere la bitmap.

La funzione StretchBlt sposta la bitmap dal dispositivo di origine fornito da pSrcDC al dispositivo di destinazione rappresentato dall'oggetto contesto del dispositivo di cui viene chiamata la funzione membro. I parametri xSrc, ySrc, nSrcWidth e nSrcHeight definiscono l'angolo superiore sinistro e le dimensioni del rettangolo di origine. I parametri x, y, nWidth e nHeight definiscono l'angolo superiore sinistro e le dimensioni del rettangolo di destinazione. L'operazione raster specificata da dwRop definisce la modalità di combinazione della bitmap di origine e dei bit già presenti nel dispositivo di destinazione.

La funzione StretchBlt crea un'immagine speculare di una bitmap se i segni dei parametri nSrcWidth e nWidth o nSrcHeight e nHeight sono diversi. Se nSrcWidth e nWidth hanno segni diversi, la funzione crea un'immagine speculare della bitmap lungo l'asse x. Se nSrcHeight e nHeight hanno segni diversi, la funzione crea un'immagine speculare della bitmap lungo l'asse y.

La funzione StretchBlt allunga o comprime la bitmap di origine in memoria, quindi copia il risultato nella destinazione. Se è necessario unire un modello al risultato, questo non viene unito finché la bitmap di origine adattata non viene copiata nella destinazione. Se viene utilizzato un pennello, si tratta del pennello selezionato nel contesto del dispositivo di destinazione. Le coordinate di destinazione vengono trasformate in base al contesto del dispositivo di destinazione; le coordinate di origine vengono trasformate in base al contesto del dispositivo di origine.

Se le bitmap di destinazione, origine e modello non hanno lo stesso formato di colore, StretchBlt converte le bitmap di origine e modello per farle corrispondere alle bitmap di destinazione. Nella conversione vengono utilizzati i colori di primo piano e di sfondo del contesto del dispositivo di destinazione.

Se StretchBlt deve convertire a colori una bitmap monocromatica, imposta i bit bianchi (1) sui bit del colore di sfondo e i bit neri (0) sul colore di primo piano. Per la conversione da colore a monocromatico, imposta i pixel corrispondenti al colore di sfondo sul bianco (1) e tutti gli altri pixel sul nero (0). Vengono utilizzati i colori di primo piano e di sfondo del contesto del dispositivo a colori.

Non tutti i dispositivi supportano la funzione StretchBlt. Per determinare se un dispositivo supporta StretchBlt, chiamare la funzione membro GetDeviceCaps con l'indice RASTERCAPS e controllare il valore restituito per il flag RC_STRETCHBLT.

Requisiti

Intestazione: afxwin.h

Vedere anche

Riferimenti

Classe CDC

Grafico delle gerarchie

CDC::BitBlt

CDC::GetDeviceCaps

CDC::SetStretchBltMode

StretchBlt