Personalizzazione della finestra di dialogo colore

Per personalizzare una finestra di dialogo colore , possibile utilizzare uno qualsiasi dei seguenti metodi:

possibile modificare l'aspetto e il comportamento della finestra di dialogo colore impostando il flag nel membro Flags della struttura CHOOSECOLOR . Ad esempio, possibile impostare il flag CC_SOLIDCOLOR per dirigere la finestra di dialogo per visualizzare solo i colori solidi. A causare la finestra di dialogo selezionare inizialmente un colore diverso dal nero, impostare il flag CC_RGBINIT e specificare un colore nel membro rgbResult.

possibile fornire un modello personalizzato per la finestra di dialogo colore , ad esempio, se si desidera includere controlli aggiuntivi che sono unici per l'applicazione. La funzione ChooseColor utilizza il modello personalizzato al posto del modello predefinito.

 Per fornire un modello personalizzato per la finestra di dialogo colore
  1. Creare il modello personalizzato modificando il modello predefinito specificato nel colore.File DLG. Gli identificatori di controllo utilizzati nel modello di finestra di dialogo colore predefinito vengono definiti nella COLORDLG.File H.
  2. Utilizzare la struttura CHOOSECOLOR per abilitare il modello come segue:

possibile fornire una routine di hook CCHookProc per la finestra di dialogo colore . La routine di hook in grado di elaborare i messaggi inviati a una finestra di dialogo. Inoltre possibile utilizzare i messaggi registrati per controllare il comportamento della finestra di dialogo. Se si utilizza un modello personalizzato per definire ulteriori controlli, necessario fornire una procedura di gancio per l'elaborazione dell'input per i controlli.

 Per attivare una procedura di gancio per la finestra di dialogo colore
  1. Impostare il flag CC_ENABLEHOOK nel membro Flags della struttura CHOOSECOLOR.
  2. Specificare l'indirizzo della procedura gancio nel membro lpfnHook.

Dopo aver elaborato il messaggio WM_INITDIALOG , la procedura di finestra di dialogo Invia un messaggio WM_INITDIALOG per la routine di hook. Il parametro lParam del messaggio un puntatore alla struttura CHOOSECOLOR utilizzato per inizializzare la finestra di dialogo.

Nella finestra di dialogo Invia il messaggio registrato COLOROKSTRING alla routine di hook quando l'utente fa clic sul pulsante OK . La routine di hook pu rifiutare il colore selezionato e forzare la finestra di dialogo di rimanere aperti restituendo zero quando riceve questo messaggio. La routine di hook pu forzare la finestra di dialogo per selezionare un colore particolare inviando il messaggio registrato SETRGBSTRING a nella finestra di dialogo. Per utilizzare questi messaggi registrati, necessario passare le costanti COLOROKSTRING e SETRGBSTRING per la funzione RegisterWindowMessage per ottenere un identificatore di messaggio. quindi possibile utilizzare l'identificatore per rilevare ed elaborare i messaggi inviati dalla finestra di dialogo, o per inviare messaggi alla finestra di dialogo.