设为首页 加入收藏

TOP

6.7.3 使用"颜色"对话框设置文本背景颜色
2013-10-07 00:35:26 来源: 作者: 【 】 浏览:63
Tags:6.7.3 使用 " 颜色 对话 设置 文本 背景

6.7.3  使用"颜色"对话框设置文本背景颜色

"颜色"对话框也是常用的对话框之一,用户可以直观地在对话框中选择所需要的颜色,也可以创建自定义颜色。CColorDialog类对"颜色"对话框进行了封装,可以通过构造函数CColorDialog构造"颜色"对话框。

语法格式如下:

CColorDialog( COLORREF clrInit = 0, 
DWORD dwFlags = 0, CWnd* pParentWnd = NULL );

clrInit:标识"颜色"对话框默认时的颜色。

dwFlags:一组标记,用于自定义"颜色"对话框。

pParentWnd:标识"颜色"对话框的父窗口。

"颜色"对话框的常用函数如表6.8所示。

表6.8  "颜色"对话框的常用函数

    < xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

DoModal

用于显示“颜色”对话框,供用户选择颜色

GetColor

用于获得用户选择的颜色

GetSavedCustomColors

用于返回用户自定义的颜色

SetCurrentColor

用于设置当前选择的颜色

例6.8  下面使用"颜色"对话框设置静态文本控件中文本的背景颜色。程序设计步骤如下:(实例位置:光盘\TM\sl\6\4)

(1)创建一个基于对话框的应用程序,将对话框的Caption属性修改为"使用'颜色'对话框设置文本背景颜色"。

(2)向对话框中添加一个静态文本控件和一个按钮控件。

(3)在对话框头文件中声明一个COLORREF对象m_Color。

(4)处理"颜色"按钮的单击事件,创建"颜色"对话框,获得选择的颜色。代码如下:

void CColorDialogDlg::OnColor()   //"颜色"按钮单击事件处理函数
{
CColorDialog dlg(m_Color);   //创建"颜色"对话框
if (dlg.DoModal()==IDOK)   //判断是否按下"确定"按钮
{
m_Color = dlg.GetColor();  //获取用户选择的颜色
Invalidate();    //重绘窗口
}
}


(5)处理对话框的WM_CTLCOLOR事件,在该事件的处理函数中设置静态文本控件显示文本的背景颜色。代码如下:

HBRUSH CColorDialogDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_STATIC)      //判断是否为静态文本控件
pDC->SetBkColor(m_Color);       //设置文本的背景颜色
return hbr;
}
实例的运行结果如图6.27所示。
 
图6.27  使用"颜色"对话框设置文本背景颜色
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇6.4.2 控件对齐方式 下一篇6.7.1 使用"文件"对话..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: