Visual C++ 7.1Visual C++ 8.0Visual Studio 6Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
CColorBox
一个非常简单的按钮,显示一种颜色,并允许用户通过点击按钮来更改它。
引言
CColorBox
是一个非常非常简单的控件。它显示一种颜色,当用户点击它时,Windows 中的标准颜色选择器会弹出,让用户更改颜色。它也没那么复杂 :-)。
背景
我曾经需要一个显示颜色的控件(就像 Windows 颜色选择器中的颜色框)。由于我没有找到这样的东西,我尝试自己做。如果您还没有做过自己的控件,就像我在此项目之前一样,也许这段代码是有用的。它很小,而且希望很容易理解。
使用代码
CColorBox
非常容易使用。要在您的项目中添加一个 CColorBox
,请执行以下操作
- 将 colorbox.cpp 和 colorbox.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 日 - 初始版本。