Para personalizar uma caixa de diálogo de cor , você pode usar qualquer um dos seguintes métodos:
Você pode modificar a aparência e o comportamento da caixa de diálogo cor , definindo sinalizadores in o sinalizadores membro da estrutura CHOOSECOLOR . Por exemplo, você pode definir o sinalizador CC_SOLIDCOLOR para direcionar a caixa de diálogo para exibir somente cores sólidas. Para fazer com que a caixa de diálogo Selecionar inicialmente uma cor diferente de preto, defina o sinalizador CC_RGBINIT e especifique uma cor na rgbResult membro.
Você pode fornecer um modelo Personalizar para a caixa de diálogo de cor , por exemplo, se você quiser incluir controles adicionais que são exclusivos do seu aplicativo. A função ChooseColor usa o modelo personalizado no local do modelo padrão.
Para fornecer um modelo Personalizar para a caixa de diálogo de cor- Ou -
Você pode fornecer um procedimento de gancho de CCHookProc para a caixa de diálogo de cor . O procedimento de gancho pode Processoar as mensagens enviadas para a caixa de diálogo. Ele também pode usar mensagens registadas para controlar o comportamento da caixa de diálogo. Se você usar um modelo personalizado para definir controles adicionais, você deve fornecer um procedimento gancho para processar a entrada para seus controles.
Para habilitar um procedimento de gancho para a caixa de diálogo de corApós processar a WM_INITDIALOG mensagem, o procedimento caixa diálogo envia uma mensagem WM_INITDIALOG para o procedimento gancho. O lParam parâmetro desta mensagem é um ponteiro para a estrutura CHOOSECOLOR usada para inicializar a caixa de diálogo.
A caixa de diálogo envia a mensagem registrada de COLOROKSTRING para o procedimento gancho quando o usuário clica no botão OK . O procedimento de gancho pode rejeitar a cor selecionada e forçar a caixa de diálogo permaneça aberta por retornar zero quando ele recebe essa mensagem. O procedimento de gancho pode forçar a caixa de diálogo para selecionar uma cor especial, enviando a mensagem registrada SETRGBSTRING para a caixa de diálogo. Para usar essas mensagens registradas, você deve passar as constantes COLOROKSTRING e SETRGBSTRING para o RegisterWindowMessage função para obter um identificador de mensagem. Você pode usar o identificador para detectar e processar mensagens enviadas da caixa de diálogo, ou para enviar mensagens para a caixa de diálogo.