CHOOSECOLOR结构包含ChooseColor函数用于初始化颜色公共对话框的信息。用户关闭对话框后,系统会在此结构中返回有关用户选择的信息。
typedef struct { // cc
DWORD lStructSize;
HWND hwndOwner;
HWND hInstance;
COLORREF rgbResult;
COLORREF* lpCustColors;
DWORD Flags;
LPARAM lCustData;
LPCCHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} CHOOSECOLOR;
会员
lStructSize
指定结构的长度(以字节为单位)。
hwndOwner
标识拥有该对话框的窗口。该成员可以是任何有效的窗口句柄,如果对话框没有所有者,它可以为NULL。
的hInstance
如果在旗成员中设置了CC_ENABLETEMPLATEHANDLE标志,则的hInstance是包含对话框模板的内存对象的句柄。如果设置了CC_ENABLETEMPLATE标志,的hInstance标识包含由lpTemplateName成员命名的对话框模板的模块。如果没有设置CC_ENABLETEMPLATEHANDLE和CC_ENABLETEMPLATE,则该成员将被忽略。
rgbResultlb
如果设置了CC_RGBINIT标志,rgbResultlb指定创建对话框时最初选择的颜色。如果指定的颜色值不在可用颜色之间,系统将选择最近的可用颜色。如果rgbResultlb为零或CC_RGBINIT未设置,则初始选择的颜色为黑色。如果用户单击确定按钮,rgbResultlb指定用户的颜色选择。
lpCustColors
指向16个COLORREF值的数组,其中包含对话框中自定义颜色框的红,绿,蓝(RGB)值。如果用户修改这些颜色,系统将使用新的RGB值更新数组。要在调用ChooseColor函数之前保留新的自定义颜色,您应该为数组分配静态内存。
旗
您可以使用一组位标记来初始化颜色公共对话框。当对话框返回时,它设置这些标志以指示用户的输入。该成员可以是以下标志的组合:
旗 | 含义 |
CC_ENABLEHOOK | 启用此结构的lpfnHook成员中指定的挂接过程。该标志仅用于初始化对话框。 |
CC_ENABLETEMPLATE | 表示的hInstance和lpTemplateName成员指定要用于替换默认模板的对话框模板。该标志仅用于初始化对话框。 |
CC_ENABLETEMPLATEHANDLE | 表示的hInstance成员标识包含预加载对话框模板的数据块。如果指定了该标志,系统将忽略lpTemplateName成员。该标志仅用于初始化对话框。 |
CC_FULLOPEN | 使对话框显示允许用户创建自定义颜色的其他控件。如果未设置此标志,用户必须单击“定义自定义颜色”按钮显示自定义颜色控件。 |
CC_PREVENTFULLOPEN | 禁用定义自定义颜色按钮。 |
CC_RGBINIT | 使对话框使用rgbResultlb成员中指定的颜色作为初始颜色选择。 |
CC_SHOWHELP | 导致对话框显示帮助按钮。hwndOwner成员必须指定窗口以接收当用户单击“帮助”按钮时对话框发送的HELPMSGSTRING注册消息。 |
lCustData
指定系统传递给由lpfnHook成员标识的挂接过程的应用程序定义的数据。当系统向挂接过程发送WM_INITDIALOG消息时,消息的【lParam的】参数是指向创建对话框时指定的CHOOSECOLOR结构的指针。挂钩过程可以使用此指针获取lCustData值。
lpfnHook
指向CCHookProc挂接过程的指针,可以处理针对该对话框的消息。除非在旗成员中设置了CC_ENABLEHOOK标志,否则该成员将被忽略。
lpTemplateName
指向由的hInstance成员标识的模块中的对话框模板资源的以null结尾的字符串。此模板代替标准对话框模板。对于编号的对话框资源,lpTemplateName可以是MAKEINTRESOURCE宏返回的值。除非在旗成员中设置了CC_ENABLETEMPLATE标志,否则此成员将被忽略。
也可以看看