Condividi tramite


Contesti di dispositivo di memoria

Per consentire alle applicazioni di inserire l'output in memoria anziché inviarlo a un dispositivo effettivo, usare un contesto di dispositivo speciale per le operazioni bitmap denominate contesto di dispositivo memoria. Un controller di dominio di memoria consente al sistema di considerare una parte di memoria come dispositivo virtuale. Si tratta di una matrice di bit in memoria che un'applicazione può usare temporaneamente per archiviare i dati di colore per le bitmap create su una normale superficie di disegno. Poiché la bitmap è compatibile con il dispositivo, un controller di dominio di memoria viene talvolta definito anche un contesto di dispositivo compatibile .

Il controller di dominio di memoria archivia le immagini bitmap per un particolare dispositivo. Un'applicazione può creare un controller di dominio di memoria chiamando la funzioneCreateCompatibleDC.

La bitmap originale in un controller di dominio di memoria è semplicemente un segnaposto. Le sue dimensioni sono un pixel di un pixel. Prima che un'applicazione possa iniziare a disegnare, deve selezionare una bitmap con la larghezza e l'altezza appropriate nel controller di dominio chiamando la funzioneSelectObject. Per creare una bitmap delle dimensioni appropriate, usare la CreateBitmap, CreateBitmapIndirecto funzione createCompatibleBitmap. Dopo aver selezionato la bitmap nel controller di dominio di memoria, il sistema sostituisce la matrice a bit singolo con una matrice sufficientemente grande da archiviare le informazioni sul colore per il rettangolo specificato di pixel.

Quando un'applicazione passa l'handle restituito da CreateCompatibleDC a una delle funzioni di disegno, l'output richiesto non viene visualizzato sulla superficie di disegno di un dispositivo. Il sistema archivia invece le informazioni sul colore per la linea risultante, la curva, il testo o l'area nella matrice di bit. L'applicazione può copiare l'immagine archiviata in memoria in una superficie di disegno chiamando la funzionebitBlt, identificando il controller di dominio di memoria come contesto del dispositivo di origine e un controller di dominio di finestra o schermo come contesto del dispositivo di destinazione.

Quando si visualizza un DIB o un DDB creato da un DIB in un dispositivo tavolozza, è possibile migliorare la velocità di disegno dell'immagine disponendo la tavolozza logica in modo che corrisponda al layout della tavolozza di sistema. A tale scopo, chiamare GetDeviceCaps con il valore NUMRESERVED per ottenere il numero di colori riservati nel sistema. Chiamare quindi GetSystemPaletteEntries e compilare le prime e le ultime voci NUMRESERVED/2 della tavolozza logica con i colori di sistema corrispondenti. Ad esempio, se NUMRESERVED è 20, compilare le prime e le ultime 10 voci della tavolozza logica con i colori di sistema. Compilare quindi i rimanenti colori 256-NUMRESERVED della tavolozza logica (nell'esempio, i 236 colori rimanenti) con i colori del DIB e impostare il flag PC_NOCOLLAPSE su ognuno di questi colori.

Per altre informazioni sui colori e le tavolozze, vedere Colori. Per altre informazioni sulle bitmap e sulle operazioni bitmap, vedere bitmap.