Condividi tramite


Funzione CreateDCA (wingdi.h)

La funzione CreateDC crea un contesto di dispositivo per un dispositivo usando il nome specificato.

Sintassi

HDC CreateDCA(
       LPCSTR         pwszDriver,
  [in] LPCSTR         pwszDevice,
       LPCSTR         pszPort,
  [in] const DEVMODEA *pdm
);

Parametri

pwszDriver

Puntatore a una stringa di caratteri con terminazione Null che specifica DISPLAY o il nome di un dispositivo di visualizzazione specifico. Per la stampa, è consigliabile passare NULL a lpszDriver perché GDI ignora lpszDriver per i dispositivi stampanti.

[in] pwszDevice

Puntatore a una stringa di caratteri con terminazione Null che specifica il nome del dispositivo di output specifico usato, come illustrato da Print Manager (ad esempio, Fx-80). Non è il nome del modello della stampante. È necessario usare il parametro lpszDevice .

Per ottenere nomi validi per la visualizzazione, chiamare EnumDisplayDevices.

Se lpszDriver è DISPLAY o il nome del dispositivo di un dispositivo visualizzato specifico, lpszDevice deve essere NULL o lo stesso nome del dispositivo. Se lpszDevice è NULL, viene creato un controller di dominio per il dispositivo di visualizzazione primario.

Se nel sistema sono presenti più monitor, la chiamata CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) creerà un controller di dominio che copre tutti i monitor.

pszPort

Questo parametro viene ignorato e deve essere impostato su NULL. Viene fornito solo per compatibilità con Windows a 16 bit.

[in] pdm

Puntatore a una struttura DEVMODE contenente i dati di inizializzazione specifici del dispositivo per il driver di dispositivo. La funzione documentProperties recupera questa struttura compilata per un dispositivo specificato. Il parametro pdm deve essere NULL se il driver di dispositivo deve usare l'inizializzazione predefinita (se presente) specificata dall'utente.

Se lpszDriver è DISPLAY, pdm deve essere null; GDI usa quindi il dispositivo di visualizzazione corrente DEVMODE.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è l'handle di un controller di dominio per il dispositivo specificato.

Se la funzione ha esito negativo, il valore restituito è NULL.

Osservazioni

Si noti che l'handle per il controller di dominio può essere usato solo da un singolo thread in qualsiasi momento.

Per i parametri lpszDriver e lpszDevice, chiamare EnumDisplayDevices per ottenere nomi validi per la visualizzazione.

Quando il controller di dominio non è più necessario, chiamare la funzione deleteDC .

Se lpszDriver o lpszDevice è DISPLAY, il thread che chiama CreateDC è proprietario del HDC creato. Quando questo thread viene eliminato definitivamente, il HDC non è più valido. Pertanto, se si crea il HDC e lo si passa a un altro thread, uscire dal primo thread, il secondo thread non sarà in grado di usare il HDC.

Quando si chiama CreateDC per creare il HDC per un dispositivo di visualizzazione, è necessario passare a pdm NULL o un puntatore a DEVMODE che corrisponde al DEVMODE corrente del dispositivo di visualizzazione specificato lpszDevice. È consigliabile passare NULL e non provare a trovare esattamente la corrispondenza con il DEVMODE per il dispositivo di visualizzazione corrente.

Quando si chiama CreateDC per creare il HDC per un dispositivo stampante, il driver della stampante convalida l'DEVMODE. Se il driver della stampante determina che il DEVMODE non è valido (ovvero, il driver della stampante non può convertire o utilizzare DEVMODE), il driver della stampante fornisce un DEVMODE predefinito per creare l'HDC per il dispositivo della stampante.

ICM: Per abilitare ICM, impostare il membro dmICMMethod della struttura DEVMODE ,a cui punta il parametro pInitData .

Esempi

Per un esempio, vedere Acquisizione di un'immagine.

Nota

L'intestazione wingdi.h definisce CreateDC come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wingdi.h (include Windows.h)
libreria Gdi32.lib
dll Gdi32.dll

Vedere anche

DEVMODE

DOCINFO

DeleteDC

funzioni del contesto di dispositivo

Panoramica dei contesti di dispositivo

DocumentProperties

EnumDisplayDevices

più monitor

StartDoc