CHOOSECOLORA 结构 (commdlg.h)

包含 ChooseColor 函数用于初始化 “颜色 ”对话框的信息。 用户关闭对话框后,系统会返回有关此结构中用户选择的信息。

语法

typedef struct tagCHOOSECOLORA {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HWND         hInstance;
  COLORREF     rgbResult;
  COLORREF     *lpCustColors;
  DWORD        Flags;
  LPARAM       lCustData;
  LPCCHOOKPROC lpfnHook;
  LPCSTR       lpTemplateName;
  LPEDITMENU   lpEditInfo;
} CHOOSECOLORA, *LPCHOOSECOLORA;

成员

lStructSize

类型:DWORD

结构的长度(以字节为单位)。

hwndOwner

类型:HWND

拥有对话框的窗口的句柄。 此成员可以是任何有效的窗口句柄,如果对话框没有所有者,则它可以为 NULL

hInstance

类型:HWND

如果在 Flags 成员中设置了CC_ENABLETEMPLATEHANDLE 标志则 hInstance 是包含对话框模板的内存对象的句柄。 如果设置了 CC_ENABLETEMPLATE 标志, 则 hInstance 是包含由 lpTemplateName 成员命名的对话框模板的模块的句柄。 如果未设置 CC_ENABLETEMPLATEHANDLECC_ENABLETEMPLATE ,则忽略此成员。

rgbResult

类型: COLORREF

如果设置了 CC_RGBINIT 标志, rgbResult 将指定创建对话框时最初选择的颜色。 如果指定的颜色值不在可用颜色中,系统会选择最接近的可用纯色。 如果 rgbResult 为零或 未设置CC_RGBINIT ,则最初选择的颜色为黑色。 如果用户单击“ 确定” 按钮, rgbResult 将指定用户的颜色选择。 若要创建 COLORREF 颜色值,请使用 RGB 宏。

lpCustColors

类型: COLORREF*

指向包含红色、绿色、蓝色 (RGB) 对话框中自定义颜色框值的 16 个值的数组的指针。 如果用户修改这些颜色,系统会使用新的 RGB 值更新数组。 若要在调用 ChooseColor 函数之间保留新的自定义颜色,应为数组分配静态内存。 若要创建 COLORREF 颜色值,请使用 RGB 宏。

Flags

类型:DWORD

可用于初始化 “颜色 ”对话框的一组位标志。 当对话框返回时,它会设置这些标志以指示用户的输入。 此成员可以是以下标志的组合。

含义
CC_ANYCOLOR
0x00000100
使对话框显示基本颜色集中的所有可用颜色。
CC_ENABLEHOOK
0x00000010
启用此结构的 lpfnHook 成员中指定的挂钩过程。 此标志仅用于初始化对话框。
CC_ENABLETEMPLATE
0x00000020
hInstancelpTemplateName 成员指定用于替代默认模板的对话框模板。 此标志仅用于初始化对话框。
CC_ENABLETEMPLATEHANDLE
0x00000040
hInstance 成员标识包含预加载对话框模板的数据块。 如果指定了此标志,系统会忽略 lpTemplateName 成员。 此标志仅用于初始化对话框。
CC_FULLOPEN
0x00000002
使对话框显示允许用户创建自定义颜色的其他控件。 如果未设置此标志,用户必须单击“ 定义自定义颜色 ”按钮以显示自定义颜色控件。
CC_PREVENTFULLOPEN
0x00000004
禁用“ 定义自定义颜色 ”按钮。
CC_RGBINIT
0x00000001
使对话框使用 rgbResult 成员中指定的颜色作为初始颜色选择。
CC_SHOWHELP
0x00000008
使对话框显示“帮助”按钮。 hwndOwner 成员必须指定用于接收用户单击“帮助”按钮时对话框发送的 HELPMSGSTRING 注册消息的窗口。
CC_SOLIDCOLOR
0x00000080
使对话框在基本颜色集中仅显示纯色。

lCustData

类型:LPARAM

系统传递给 由 lpfnHook 成员标识的挂钩过程的应用程序定义数据。 当系统将 WM_INITDIALOG 消息发送到挂钩过程时,消息的 lParam 参数是指向创建对话框时指定的 CHOOSECOLOR 结构的指针。 挂钩过程可以使用此指针获取 lCustData 值。

lpfnHook

类型: LPCCHOOKPROC

指向 CCHookProc 挂钩过程的指针,该过程可以处理用于对话框的消息。 除非在 Flags 成员中设置了CC_ENABLEHOOK标志,否则将忽略此成员。

lpTemplateName

类型: LPCTSTR

hInstance 成员标识的模块中对话框模板资源的名称。 此模板将替换为标准对话框模板。 对于编号对话框资源, lpTemplateName 可以是 MAKEINTRESOURCE 宏返回的值。 除非在 Flags 成员中设置了 CC_ENABLETEMPLATE 标志,否则将忽略此成员。

lpEditInfo

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 commdlg.h

另请参阅

CCHookProc

ChooseColor

通用对话框库

概念性

MAKEINTRESOURCE

引用