1、新建一个基于对话框的应用程序,应用程序名称为ColorDialog。
![MFC应用实例:[23]颜色对话框选择颜色](https://exp-picture.cdn.bcebos.com/05a320a23a42a07afc934580673834bb18efc1da.jpg)
2、对对话框进行如下图的设计添加“颜色”,“退出”两个按钮,并对这两个按钮添加对应的响应函数。
![MFC应用实例:[23]颜色对话框选择颜色](https://exp-picture.cdn.bcebos.com/35fa07efa25f0c14a1f82b310d89a146b6b138db.jpg)
3、对应用程序进行初始化,初始化形成一个红色的椭圆。在OnInitDialog()函数中添加一下代码:crColor=RGB(255,0,0); //设置初始颜色在OnPaint()函数中添加一下代码:CBrush brush,*pOldBrush; brush.CreateSolidBrush(crColor); pOldBrush=dc.SelectObject(&brush); //载入刷子 dc.Ellipse(40,40,220,150); //绘制椭圆 //恢复设备上下文的原有画刷 dc.SelectObject(pOldBrush); brush.DeleteObject();注意要在此文档的上方加入COLORREF crColor; //填充颜色定义颜色
![MFC应用实例:[23]颜色对话框选择颜色](https://exp-picture.cdn.bcebos.com/7efc527c34b33c415e392af2887de137c8762edb.jpg)
4、在颜色按钮的响应函数OnColor()中添加一下代码:void CColorDialogDlg::OnColor(){ // TODO: Add your control notification handler code here CColorDialog colordialog(crColor,CC_FULLOPEN); //初始化颜色对话框对象 if(colordialog.DoModal()==IDOK) //创建颜色对话框 { crColor=colordialog.GetColor(); //获取设置颜色 Invalidate(TRUE); //重绘窗口 }}
![MFC应用实例:[23]颜色对话框选择颜色](https://exp-picture.cdn.bcebos.com/e076d77622bc7dc5bbe4d2ec5e460596b91429db.jpg)
5、程序运行如下:
![MFC应用实例:[23]颜色对话框选择颜色](https://exp-picture.cdn.bcebos.com/d4071b96b814f4d0cf803161cdfe474ec38323db.jpg)
6、使用颜色对话框选择绿色颜色后
![MFC应用实例:[23]颜色对话框选择颜色](https://exp-picture.cdn.bcebos.com/47bf594ec28333bfbb6cccfcdbb8b43ea9db1ddb.jpg)