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 della stampante.

[in] pwszDevice

Puntatore a una stringa di caratteri con terminazione Null che specifica il nome del dispositivo di output specifico utilizzato, 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 di visualizzazione 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 monitoraggi.

pszPort

Questo parametro viene ignorato e deve essere impostato su NULL. Viene fornito solo per la 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 devMODE corrente del dispositivo di visualizzazione.

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.

Commenti

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 le visualizzazioni.

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

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

Quando si chiama CreateDC per creare hdc per un dispositivo di visualizzazione, è necessario passare a pdmnull o a un puntatore a DEVMODE corrispondente all'attuale DEVMODE del dispositivo di visualizzazione specificato da lpszDevice . È consigliabile passare NULL e non provare a trovare esattamente la corrispondenza con DEVMODE per il dispositivo di visualizzazione corrente.

Quando si chiama CreateDC per creare HDC per un dispositivo stampante, il driver della stampante convalida DEVMODE. Se il driver della stampante determina che 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 ) sul valore appropriato.

Esempio

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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

DEVMODE

DOCINFO

DeleteDC

Funzioni del contesto di dispositivo

Panoramica dei contesti di dispositivo

Proprietà documento

EnumDisplayDevices

Più monitor display

Startdoc