您的位置:首页 > 其它

VC颜色列表的对话框的使用_CColorDialog(转)

2009-01-10 12:02 1076 查看

CColorDialog - [MFC]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://kimnan.yourblog.org/logs/427394.html

类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 <afxdlgs.h> 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之前
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: