极语言官方网站

颜色对话框——选择颜色

显示允许用户选择特定颜色值的模式对话框。 用户可以从一组基本或自定义调色板中选择一种颜色。

可以通过修改对话框用户界面的 RGB 或色调、饱和度、亮度 (HSL) 颜色值来生成颜色值。返回用户选择的颜色的 RGB 值。

首先初始化 颜色框类 结构,然后调用 颜色选框 函数以显示对话框。

颜色框类 选色(长度=36,标志=3)//定义颜色框类变量为选色,结构数据的长度=36,标志=1初始化颜色+2定义颜色
整数 颜色表[16];//自定义颜色阵列
程序段 窗体启动;//以上代码为全局变量,在窗体启动程序段进行赋值
选色.窗口=窗体;//指定颜色对话框的窗口为程序主窗体
选色.数组=@颜色表;//指定对话框的颜色数组为颜色表的指针地址
结束//换到其它地方书写代码
程序段 按钮1_点击;//在按钮1的点击事件里弹出颜色对话框
如果(颜色选框(选色))//如果函数返回真,表示用户选择了一种颜色
{整数 背景=创建画刷(选色.颜色)//用选择的颜色创建一个背景画刷(用来填充窗体背景)
修改类值(窗体,类背景色,背景)//修改窗体的背景颜色为创建的颜色画刷
重绘矩形(窗体,0,1)}//重绘窗体擦除背景,从而显示新的背景色
结束//本例演示创建背景画刷,也可以用来创建画笔

RGB 颜色模型

RGB 模型用于指定显示器和其他发光设备的颜色。

有效的红色、绿色和蓝色值范围为 0 到 255,其中 0 表示最小强度,255 表示最大强度。

下图显示了如何将红色、绿色和蓝色的原色组合在一起以生成四种其他颜色。

(对于显示设备,当红色、绿色和蓝色值设置为 0 时,将生成黑色。在显示技术中,黑色是所有颜色的缺失。)

下表列出了 RGB 模型的八种颜色及其关联的 RGB 值。
颜色16进制RGB 值
红色0xFF0:255.0.0
绿色0xFF000:0.255.0
蓝色0xFF00000:0.0.255
青色0xFFFF000:0.255.255
洋红0xFF00FF0:255.0.255
黄色0xFFFF0:255.255.0
白色0xFFFFFF0:255.255.255
黑色0x00:0.0.0

颜色框类

中文名字英文名称长度作用解释
颜色框类CHOOSECOLOR36    弹出一个选取颜色的对话框,并得到颜色相关信息。
颜色框类 成员表
中文英文类型作用解释
长度dwSize整数指定这个结构的大小,以字节为单位。
窗口hwndOwner整数拥有对话框的窗口的句柄。可不指定
实例hInstance整数对话框的模块或内存对象的句柄
颜色rgbResult整数返回用户选择的颜色。
数组lpCustColors整数指向一个包含16个值的数组,该数组包含了对话框中自定义颜色的红、绿、蓝(RGB)值。
标志Flags整数$100所有颜色;$10回调;$20实例模板;$40忽略模板;2定义颜色;4禁用定义;1初始颜色;8显示帮助;$80只显纯色
数据lCustData整数指定程序自定义的数据,该数据会被系统发送给钩子程序。
回调lpfnHook整数指向CCHookProc钩子程序的指针,该钩子可以处理发送给对话框的消息。
模板lpTemplateName整数指向对话框模板资源名称的字符串