Customizing the Font Dialog Box

You can provide a custom template for the Font dialog box, for example, if you want to include additional controls that are unique to your application. The ChooseFont function uses your custom template in place of the default template.

    To provide a custom template for the Font dialog box
  1. Create the custom template by modifying the default template specified in the FONT.DLG file. The control identifiers used in the default Font dialog template are defined in the DLGS.H file.
  2. Use the CHOOSEFONT structure to enable the template as follows:

You can provide a CFHookProc hook procedure for the Font dialog box. The hook procedure can process messages sent to the dialog box. It can also send messages to 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.

    To enable a hook procedure for the Font dialog box
  1. Set the CF_ENABLEHOOK flag in the Flags member of the CHOOSEFONT structure.
  2. Specify the address of the hook procedure in the lpfnHook member.

After processing its WM_INITDIALOG message, the dialog box procedure sends a WM_INITDIALOG message to the hook procedure. The lParam parameter of this message is a pointer to the CHOOSEFONT structure used to initialize the dialog box.

The hook procedure can send the WM_CHOOSEFONT_GETLOGFONT, WM_CHOOSEFONT_SETLOGFONT, and WM_CHOOSEFONT_SETFLAGS messages to the dialog box to get and set the current values and flags of the dialog box.