自定义颜色对话框

【勇芳软件工作室】汉化HomePreviousNext

要自定义颜色对话框,可以使用以下任一方法:

*创建对话框时,在CHOOSECOLOR结构中指定值。

*提供自定义模板。

*提供一个挂钩程序。

您可以通过在CHOOSECOLOR结构的成员中设置标志来修改“颜色”对话框的外观和行为。例如,您可以设置CC_SOLIDCOLOR标志来引导对话框仅显示纯色。要使对话框初始选择黑色以外的颜色,请设置CC_RGBINIT标志,并在rgbResultlb成员中指定颜色。

您可以为“颜色”对话框提供自定义模板,例如,如果要包含应用程序唯一的其他控件。ChooseColor功能使用您的自定义模板代替默认模板。

为颜色对话框提供自定义模板

1.通过修改COLOR.DLG文件中指定的默认模板来创建自定义模板。默认颜色对话框模板中使用的控制标识符在COLORDLG.H文件中定义。

2.使用CHOOSECOLOR结构启用模板,如下所示:

*如果您的自定义模板是应用程序或动态链接库中的资源,请在成员中设置CC_ENABLETEMPLATE标志。使用结构的的hInstancelpTemplateName成员来标识模块和资源名称。

-Or-

*如果您的自定义模板已经在内存中,请设置CC_ENABLETEMPLATEHANDLE标志。使用的hInstance成员来标识包含该模板的内存对象。

您可以为“颜色”对话框提供CCHookProc挂钩过程。挂钩过程可以处理发送到对话框的消息。它也可以使用注册的消息来控制对话框的行为。如果您使用自定义模板定义其他控件,则必须提供一个挂钩过程来处理控件的输入。

要为颜色对话框 {999896002}

1.在CHOOSECOLOR结构的成员中设置CC_ENABLEHOOK标志。

2.在lpfnHook成员中指定挂钩过程的地址。

处理其WM_INITDIALOG消息后,对话框过程向挂钩过程发送WM_INITDIALOG消息。此消息的【lParam的】参数是指向用于初始化对话框的CHOOSECOLOR结构的指针。

当用户单击确定按钮时,对话框将发送COLOROKSTRING注册的消息到挂钩过程。挂钩过程可以拒绝所选颜色,并在收到此消息时返回零,强制对话框保持打开状态。挂钩过程可以通过将SETRGBSTRING注册的消息发送到对话框来强制对话框选择特定的颜色。要使用这些注册消息,必须将COLOROKSTRING和SETRGBSTRING常量传递给RegisterWindowMessage函数以获取消息标识符。然后,您可以使用标识符来检测和处理从对话框发送的消息,或者将消息发送到对话框。

启用挂钩过程