CColorDialog

发表:2005-9-1 15:00:01 出处: 你的博客网(yourblog.org)
类CColorDialog支持在应用中使用颜色选择对话框。CColorDialog对象是一个拥有一个颜色列表的对话框。用户可以在列表中选择一种颜色,也可以定制颜色,在退出该对话框时,向应用告知选中的颜色。构造一个CColorDialog对象可以使用类中的构造函数,也可以从类CColorDialog派生一个子类,然后定义自己的构造函数。在构造了CColorDialog对象后,可以设置或者修改m_cc结构中的任一个值以初始化对话框控件的值。m_cc是一个CHOOSECOLOR类型的结构。初始化对话框控件之后,就可以调用成员函数DoModal来显示对话框并允许用户选择颜色了。DoModal返回用户对按钮OK或Cancel的选择(返回值依次为IDOK,IDCANCEL)。如果DoModal返回了IDOK,则可以调用CColorDialog的一个成员函数来检索用户选择的颜色信息。可以使用Windows函数CommDlgExtendedError来检测对话框初始化时是否发生了错误,并取得错误的相关信息。类CColorDialog需要使用Windows3.1或更高版本提供的COMMDLG.DLL文件。定制对话框,可以从CColorDialog派生一个子类,提供一个定制的对话框模板,并增加一个消息映射来处理扩展的控件发来的通知。所有悬挂的消息将被送到基类。不需要定制钩子函数。注意  在某些版本中,如果在框架中使其它的CDialog对象变灰色,CColorDialog对象将不会以灰色背景显示。要了解有关使用类CColorDialog的更详细的信息,请参阅联机文档“Visual C++程序员指南”中的“通用对话框类”部分。
#include

CColorDialog类的成员
数据成员
m_cc用于定制对话框设置的一个结构
构造函数
CColorDialog构造一个CColorDialog对象
操作
DoModal显示对话框,并接收用户的选择
GetColor返回一个包含了选中的颜色的值的COLORREF结构
GetSavedCustomColors检索用户定制的颜色
SetCurrentColor设置当前选中的颜色
可覆盖的函数
OnColorOK覆盖它来检验对话框中输入颜色的有效性

成员函数
CColorDialog::CColorDialog
CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd*pParentWnd = NULL );
参数
clrInit缺省时选择的颜色。如果没有设置,缺省为RGB(0,0,0)(黑色)。
dwFlags定制函数和对话框外观的一组标志。要了解更详细的信息,请参阅联机文档“Win32 SDK”中的COLORREF结构。
pParentWnd指向对话框的父窗口或者所有者窗口的指针。
说明
本函数构造一个CColorDialog对象。
请参阅  CDialog::DoModal

CColorDialog::DoModal
virtual int DoModal( );
返回值
IDOK或者IDCANCEL。如果返回了IDCANCEL,则可以调用Windows函数CommDlgExtendedError来检测是否发生了错误。
说明
本函数用于显示Windows通用颜色对话框并接收用户的选择。如果想通过设置m_cc结构的各个成员来初始化不同的颜色对话框,应在对话框对象构造之后,调用DoModal之前进行。在调用DoModal之后,可以调用其它的成员函数检索设置信息和用户输入的信息。
请参阅  CDialog::DoModal, CColorDialog::CColorDialog

CColorDialog::GetColor
COLORREF GetColor( ) const;
返回值
返回一个COLORREF结构,其中包含了对话框中选中的颜色的RGB颜色值。
说明
本函数用于检索用户在对话框中选中的颜色。必须在DoModal之后调用。
请参阅  CColorDialog::SetCurrentColor

CColorDialog::GetSavedCustomColors
static COLORREF* GetSavedCustomColors( );
返回值
返回一个指向有16成员的RGB颜色数组的指针,数组中记录了用户定义的颜色。
说明
CColorDialog对象最多允许用户建立16种自定义颜色。成员函数GetSaved  CustomColors提供了对这些颜色的存取。在DoModal调用返回IDOK后可以检索这些信息。返回的数组中的每个RGB值都被初始化为RGB(255,255,255)(白色)。用户选中的自定义颜色仅在同一应用中对话框的两次激活之间保存。如果想在应用运行后还保存这些颜色,就必须采用别的方法(例如放在一个.INI文件中)。
请参阅  CColorDialog::GetColor

CColorDialog::OnColorOK
virtual BOOL OnColorOK( );
返回值
如果不应撤消对话框,则返回非零值。否则为0以备以后接收选中的颜色。
说明
如果想提供对对话框中输入的颜色的有效性检查,可以覆盖此函数。可以用本函数拒绝用户在通用颜色对话框中输入的颜色。通常不需要使用此函数,因为框架已提供了对颜色的缺省的有效性检查。可以调用成员函数GetColor取得选中的颜色的RGB值。如果返回0,则仍然显示该对话框,等待用户输入文件名。

CColorDialog::SetCurrentColor
void SetCurrentColor( COLORREF clr);
参数
clr一个RGB颜色值。
说明
本函数在调用DoModal之后调用,把选中的颜色设置为clr指定的RGB值。一般在一个消息处理过程中或者OnColorOK中调用。对话框将自动地根据参数clr的值改变选中的颜色。
请参阅  CColorDialog::GetColor, CColorDialog::OnColorOK

数据成员
CColorDialog::m_cc
CHOOSECOLOR m_cc
说明
m_cc是一个CHOOSECOLOR类型的结构,它的成员记录了对话框的特性和值。在构造一个CColorDialog对象之后调用DoModal之前,可以使用m_cc设置对话框的属性。 

你可能感兴趣的:(C/C++/VC)