MFC中CColorDialog类的使用
在MFC中,我们经常使用颜色对话框类CColorDialog。类CColorDialog支持在应用中使用颜色选择对话框。CColorDialog对象是一个拥有一个颜色列表的对话框。用户可以在列表中选择一种颜色,也可以定制颜色,在退出该对话框时,向应用告知选中的颜色。
一、构造方法:
CColorDialog(
COLORREF clrInit = 0,
DWORD dwFlags = 0,
CWnd*pParentWnd = NULL
);
COLORREFclrInit:设定默认的颜色,如果未指定,则默认值为RGB(0,0,0)
DWORD dwFlags:颜色对话框的功能和外观设置标志,参数详细参考二
CWnd*pParentWnd:设置颜色对话框的父窗口
二、dwFlags值:
CC_ANYCOLOR
对话框显示所有可用的基于基本颜色的颜色。
CC_ENABLEHOOK
激活由lpfnHook成员指定的钩子程序。该标识仅用于初始化对话框时。
CC_ENABLETEMPLATE
表示利用由hInstance 和 lpTemplateName 成员指定的对话框模板。该标识符仅用于初始化对话框。
CC_ENABLETEMPLATEHANDLE
表示hInstance成员标识一个包含了预加载的对话框模板的数据块。如果该标识被指定,系统会忽略lpTemplateName 成员。该标识符仅用于初始化对话框。
CC_FULLOPEN
让对话框显示额外的控件以使用户创建自定义的颜色。如果该标识未设置,用户必须点击【自定义颜色】按钮才能显示自定颜色控件。
CC_PREVENTFULLOPEN
使自定义颜色按钮失效。
CC_RGBINIT
让对话框默认使用由rgbResult成员指定的颜色
CC_SHOWHELP
让对话框显示帮助按钮。hwndOwner成员必须在用户点击【帮助】按钮时发送HELPMSGSTRING消息的窗口
CC_SOLIDCOLOR
让对话框仅显示基本颜色组成的纯色。
三、应用实例:
//使用默认参数
CColorDialog ColorDlg;
if(ColorDlg.DoModal()==IDOK)
COLORREF color = ColorDlg.GetColor(); //也可以使用CColorDialog类成员m_cc操作
//使用自定义参数
CColorDialog ColorDlg(RGB(80,80,80), CC_FULLOPEN);
if(ColorDlg.DoModal()== IDOK)
COLORREF color = ColorDlg.GetColor(); //也可以使用CColorDialog类成员m_cc操作
四、获得color的值
int Red =GetRValue(color);
int Green =GetGValue(color);
int Blue = GetBValue(color);