Color Dialog Box 调色板

本文介绍如何使用CHOOSECOLOR结构体配置Windows系统调色板对话框,并通过ChooseColor函数展示对话框。文章详细解释了结构体各成员的作用及如何实现自定义颜色保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

系统调色板对话框可以分为三个部分,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缓冲区就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值