65.9K
CodeProject 正在变化。 阅读更多。
Home

炫酷的颜色选择器,包含色调、饱和度和亮度

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (12投票s)

2004年3月4日

MIT

1分钟阅读

viewsIcon

89142

downloadIcon

2364

此颜色选择器有助于更有效地选择颜色。

引言

当我创建这个颜色选择器时,我正在开发一个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对象中;然后稍后像往常一样绘制。

历史

  • 修复了关于桌面颜色深度的重大错误。
© . All rights reserved.