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

CColorBox

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.55/5 (15投票s)

2004年8月4日

Ms-RL

2分钟阅读

viewsIcon

132621

downloadIcon

5193

一个非常简单的按钮,显示一种颜色,并允许用户通过点击按钮来更改它。

CColorBox

引言

CColorBox 是一个非常非常简单的控件。它显示一种颜色,当用户点击它时,Windows 中的标准颜色选择器会弹出,让用户更改颜色。它也没那么复杂 :-)。

背景

我曾经需要一个显示颜色的控件(就像 Windows 颜色选择器中的颜色框)。由于我没有找到这样的东西,我尝试自己做。如果您还没有做过自己的控件,就像我在此项目之前一样,也许这段代码是有用的。它很小,而且希望很容易理解。

使用代码

CColorBox 非常容易使用。要在您的项目中添加一个 CColorBox,请执行以下操作

  • colorbox.cppcolorbox.h 添加到您的项目中。
  • 在资源编辑器中选择一个按钮,并为此控件添加一个 CButton 变量。
  • 在头文件中将变量类型从 CButton 更改为 CColorBox

就这样。现在,是时候看看您可以使用的函数了。

void SetColor(const COLORREF newColor);
COLORREF GetColor() const;

我假设这些函数不需要太多的解释 :-)。调用 SetColor 设置颜色,并调用 GetColor 获取颜色。

BOOL SelectColor();
void SetCustomColors(COLORREF *customcolors);

如果您调用 SelectColor,Windows 中的颜色选择器 (CColorDialog) 会弹出,并允许用户更改颜色。如果用户更改了颜色,该函数返回 TRUE。在颜色选择器中,用户可以定义 16 种自定义颜色。如果您想指定并保存这些颜色,您应该使用指向至少 16 个 COLORREF 的指针调用 SetCustomColors。自定义颜色将保存在此内存区域中。

void SetAllowChange(const BOOL allowchange);
BOOL GetAllowChange() const;

默认情况下,用户可以通过单击按钮来更改颜色 (调用 SelectColor)。如果希望禁用此行为,请调用 SetAllowChange(FALSE)

void SetSelected(const BOOL selected);
BOOL GetSelected() const;

查看屏幕截图。按钮 2 的边框比其他按钮的边框更深。这意味着它被“选中”了。如果您查看颜色选择器中的框,您会看到这些框具有类似的功能。因此,如果您想在按钮周围有一个深色边框,请调用 SetSelected(TRUE)

历史

  • 2004 年 8 月 4 日 - 初始版本。
© . All rights reserved.