<1>CColorDialog类
其中有颜色对话框的所有操作,是模态的对话框
<2>CColorDialog类的构造函数
CColorDialog(
COLORREF clrInit = 0,
DWORD dwFlags = 0,
CWnd* pParentWnd = NULL
);
参数说明:
clrInit:默认选择颜色的颜色值,类型为COLORREF,实际上就是unsigned long类型。如果没有设置它的值,则默认为RGB(0,0,0),即黑色。
注:RGB(r,g,b)是宏,可以计算颜色值。括号中的三个值分别为红、绿、蓝分量的值。
dwFlags:自定义颜色对话框功能和外观的属性值。详情可在MSDN中查阅。
pParentWnd:颜色对话框的父窗口的指针。
<3>获取颜色对话框中选中的颜色值
需要调用函数
COLORREF GetColor( ) const;
BYTE GetRValue(DWORD rgb);
BYTE GetGValue(DWORD rgb);
BYTE GetBValue(DWORD rgb);
其中DWORD为Double Word,每一个word为2个字节长度,DWORD双字即为4字节,32位。
<4>实现
实现就非常简单了
void C颜色对话框1Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
COLORREF color = RGB(255, 0, 0);
CColorDialog colorDlg(color);
if (IDOK == colorDlg.DoModal())
{
color = colorDlg.GetColor();
SetDlgItemInt(IDC_COLOR_EDIT, color);
SetDlgItemInt(IDC_R_EDIT, GetRValue(color));
SetDlgItemInt(IDC_B_EDIT, GetBValue(color));
SetDlgItemInt(IDC_G_EDIT, GetGValue(color));
}
}