现在的位置: 首页 > 综合 > 正文

颜色选择对话框CColorDialog类

2013年10月10日 ⁄ 综合 ⁄ 共 2682字 ⁄ 字号 评论关闭

CColorDialog支持在应用中使用颜色选择对话框。CColorDialog对象是一个拥有一个颜色列表的对话框。用户可以在列表中选择一种颜色,也可以定制颜色,在退出该对话框时,向应用告知选中的颜色。构造一个CColorDialog对象可以使用类中的构造函数,也可以从类CColorDialog派生一个子类,然后定义自己的构造函数。在构造了CColorDialog对象后,可以设置或者修改m_cc结构中的任一个值以初始化对话框控件的值。m_cc是一个CHOOSECOLOR类型的结构。初始化对话框控件之后,就可以调用成员函数DoModal来显示对话框并允许用户选择颜色了。DoModal返回用户对按钮OKCancel的选择(返回值依次为IDOKIDCANCEL)。如果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缺省时选择的颜色。如果没有设置,缺省为RGB000)(黑色)。

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值都被初始化为RGB255255255)(白色)。用户选中的自定义颜色仅在同一应用中对话框的两次激活之间保存。如果想在应用运行后还保存这些颜色,就必须采用别的方法(例如放在一个.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设置对话框的属性。 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/TanXiangHao/archive/2007/07/13/1688084.aspx

抱歉!评论已关闭.