Condividi tramite


Struttura NMCUSTOMDRAW (commctrl.h)

Contiene informazioni specifiche di un codice di notifica NM_CUSTOMDRAW .

Sintassi

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

Members

hdr

Tipo: NMHDR

Struttura NMHDR che contiene informazioni su questo codice di notifica.

dwDrawStage

Tipo: DWORD

Fase di disegno corrente. Si tratta di uno dei valori seguenti.

Valore Significato
Valori globali:
CDDS_POSTERASE
Al termine del ciclo di cancellazione.
CDDS_POSTPAINT
Al termine del ciclo di pittura.
CDDS_PREERASE
Prima dell'inizio del ciclo di cancellazione.
CDDS_PREPAINT
Prima dell'inizio del ciclo di pittura.
Valori specifici dell'elemento:
CDDS_ITEM
Indica che i membri dwItemSpec, uItemState e lItemlParam sono validi.
CDDS_ITEMPOSTERASE
Dopo aver cancellato un elemento.
CDDS_ITEMPOSTPAINT
Dopo aver disegnato un elemento.
CDDS_ITEMPREERASE
Prima che venga cancellato un elemento.
CDDS_ITEMPREPAINT
Prima di disegnare un elemento.
CDDS_SUBITEM
Flag combinato con CDDS_ITEMPREPAINT o CDDS_ITEMPOSTPAINT se viene disegnato un elemento secondario. Verrà impostato solo se CDRF_NOTIFYITEMDRAW viene restituito da CDDS_PREPAINT .

hdc

Tipo: HDC

Handle per il contesto del dispositivo del controllo. Usare questo HDC per eseguire tutte le funzioni GDI.

rc

Tipo: RECT

Struttura RECT che descrive il rettangolo di delimitamento dell'area da disegnare. Questo membro viene inizializzato solo dalla notifica di CDDS_ITEMPREPAINT. Versione 5.80. Questo membro viene inizializzato anche dalla notifica di CDDS_PREPAINT.

dwItemSpec

Tipo: DWORD_PTR

Numero di elemento. Ciò che è contenuto in questo membro dipenderà dal tipo di controllo che invia la notifica. Vedere il riferimento alla notifica di NM_CUSTOMDRAW per il controllo specifico per determinare cosa, se qualcosa, è contenuto in questo membro.

uItemState

Tipo: UINT

Stato dell'elemento corrente. Questo valore è una combinazione dei flag seguenti.

Valore Significato
CDIS_CHECKED
L'elemento è selezionato.
CDIS_DEFAULT
L'elemento è nello stato predefinito.
CDIS_DISABLED
L'elemento è disabilitato.
CDIS_FOCUS
L'elemento è attivo.
CDIS_GRAYED
L'elemento è inattivo.
CDIS_HOT
L'elemento è attualmente sotto il puntatore ("hot").
CDIS_INDETERMINATE
L'elemento è in uno stato non determinato.
CDIS_MARKED
L'elemento è contrassegnato. Il significato di questo è determinato dall'implementazione.
CDIS_SELECTED
L'elemento è selezionato.
Nota Questo flag non funziona correttamente per i controlli di visualizzazione elenco disegnati dal proprietario che hanno lo stile LVS_SHOWSELALWAYS . Per questi controlli, è possibile determinare se un elemento è selezionato usando LVM_GETITEMSTATE (o ListView_GetItemState) e verificando il flag di LVIS_SELECTED .
 
CDIS_SHOWKEYBOARDCUES

Versione 6.0.L'elemento mostra i suoi segnali di tastiera.

Si noti che Comctl32 versione 6 non è ridistribuibile. sistemi operativi. Per usare Comctl32.dll versione 6, specificarlo nel manifesto. Per altre informazioni sui manifesti, vedere Abilitazione degli stili di visualizzazione.

CDIS_NEARHOT
L'elemento fa parte di un controllo attualmente sotto il puntatore del mouse ("caldo"), ma l'elemento non è "caldo". Il significato di questo è determinato dall'implementazione.
CDIS_OTHERSIDEHOT
L'elemento fa parte di un splitbutton attualmente sotto il puntatore del mouse ("caldo"), ma l'elemento non è "caldo". Il significato di questo è determinato dall'implementazione.
CDIS_DROPHILITED
L'elemento è attualmente la destinazione di rilascio di un'operazione di trascinamento.

lItemlParam

Tipo: LPARAM

Dati dell'elemento definiti dall'applicazione.

Commenti

Il valore restituito dall'applicazione dipende dalla fase di disegno corrente. Il membro dwDrawStage della struttura NMCUSTOMDRAW associata contiene un valore che specifica la fase di disegno. Quando il membro dwDrawStage è uguale a CDDS_PREPAINT e CDDS_PREERASE, alcuni controlli inviano prima il messaggio CDDS_PREERASE e si prevede che il valore restituito indichi quali messaggi successivi verranno inviati. Per un esempio di codice che illustra gli stati e le fasi di disegno, vedere Personalizzazione dell'aspetto di un controllo tramite disegno personalizzato.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione commctrl.h