Customizing the Color Dialog Box
To customize a Color dialog box, you can use any of the following methods:
- Specify values in the CHOOSECOLOR structure when you create the dialog box
- Provide a custom template
- Provide a hook procedure
You can modify the appearance and behavior of the Color dialog box by setting flags in the Flags member of the CHOOSECOLOR structure. For example, you can set the CC_SOLIDCOLOR flag to direct the dialog box to display only solid colors. To cause the dialog box to initially select a color other than black, set the CC_RGBINIT flag and specify a color in the rgbResult member.
You can provide a custom template for the Color dialog box, for example, if you want to include additional controls that are unique to your application. The ChooseColor
function uses your custom template in place of the default template.
To provide a custom template for the Color dialog box
Create the custom template by modifying the default template specified in the Color.dlg file. The control identifiers used in the default Color dialog template are defined in the Color.dlg file.
Use the CHOOSECOLOR structure to enable the template as follows:
If your custom template is a resource in an application or dynamic link library, set the CC_ENABLETEMPLATE flag in the Flags member. Use the hInstance and lpTemplateName members of the structure to identify the module and resource name.
If your custom template is already in memory, set the CC_ENABLETEMPLATEHANDLE flag. Use the hInstance member to identify the memory object that contains the template.
You can provide a CCHookProc
hook procedure for the Color dialog box. The hook procedure can process messages sent to the dialog box. It can also use registered messages to control the behavior of the dialog box. If you use a custom template to define additional controls, you must provide a hook procedure to process input for your controls.