Color Dialog Box 调色板

来源:互联网 发布:https是哪个端口 编辑:程序博客网 时间:2024/05/29 08:30

 

系统调色板对话框可以分为三个部分,Basic colors、Custom colors和Extended。

 

创建一个调色板对话框,只需要定义一个CHOOSECOLOR的变量,配置这个结构体的成员,然后以这个变量为参数调用ChooseColor函数即可。

CHOOSECOLOR结构体:

lStructSize 结构体的大小,通常初始化为sizeof(CHOOSECOLOR)。

hwndOwner 创建调色板对话框的窗口的句柄,可以为NULL。

rgbResult 返回结果的成员。

lpCustColors 颜色缓冲区,大小为16个COLORREF,Custom colors的初始值。

Flages 最复杂的一个成员,所有的属性和特征,都是由这个成员决定,可以有一系列的值或。

 

/*

hInstance、lCustData、lpfnHook、lpTemplateName 如果不使用复杂的模板,则可以忽略这四个参数。

*/

 

如果Flages设置了CC_RGBINIT位,则对话框中初始选中的rgbResult的值表示的颜色,如果rgbResult的值表示的颜色不在Basic colors中,那么默认选中第一个。

如果Flages设置了CC_FULLOPEN,则三个区域都显示出来,如果设置CC_PREVENTFULLOPEN,则EXTENDED区域将不会显示,而且Define Custom Colors按钮无效。

这是长用到的三个标记。

 

 

配置好结构体以后,调用ChooseColor函数,就会弹出调色板对话框,如果点击OK按钮,函数返回TRUE,选择的结果存放在rgbResult中;如果在点击OK之前使用了Add to Custom Colors按钮,那么lpCustColors缓冲中的值将会发生改变。

 

如果想在第二次弹出调色板对话的时候,Custom Colors中的16个颜色保持上一次的配置,只要妥善保管好lpCustColors缓冲区就好了。