炫酷的颜色选择器,包含色调、饱和度和亮度
此颜色选择器有助于更有效地选择颜色。
引言
当我创建这个颜色选择器时,我正在开发一个3D图形程序。我使用了标准的Windows常用颜色选择对话框,但是选择“定义自定义颜色>>”按钮来选择自定义颜色有点繁琐。因此,我设计了这个颜色选择器,我觉得它更容易使用。
使用代码
所有的颜色框都可以拖放到自定义颜色框上。自定义颜色值会在每次显示对话框时自动恢复。所有颜色都可以拖放到“新颜色:”框中来选择该颜色。
点击“当前颜色:”颜色框会再次选择原始颜色。但是,不可能(在不修改的情况下)将颜色拖放到“当前颜色:”颜色框上,因为那样会违背其目的。
可以更改颜色参考、色调值、饱和度值、亮度值、红色值、绿色值和蓝色值。
希望这对您有所帮助。
// declare a variable to store our color COLORREF rgbColor = RGB(255, 0, 0); // create an instance of the color selector CSelColorDlg dlgSelColor(GetRValue(rgbColor), GetGValue(rgbColor), GetBValue(rgbColor)); // display the color changing dialog box if(dlgSelColor.DoModal() == IDOK) { // select the new color rgbColor = dlgSelColor.GetColor(); // change the background color Invalidate(); }
关注点
颜色选择器的视觉外观大部分依赖于使用GetBitmapBits()
和SetBitmapBits()
来节省处理时间。当生成颜色图像时,图像存储在CBitmap
对象中;然后稍后像往常一样绘制。
历史
- 修复了关于桌面颜色深度的重大错误。