其实很简单,使用MFC现有的类CColorDialog 即可实现
核心代码如下:
1 void CCColorDialogView::OnGraphSetting() 2 { 3 CColorDialog m_setClrDlg; 4 m_setClrDlg.m_cc.Flags |= CC_FULLOPEN|CC_RGBINIT; // CC_RGBINIT可以让上次选择的颜色作为初始颜色显示出来 5 m_setClrDlg.m_cc.rgbResult = m_clr; //记录上次选择的颜色 6 if(IDOK ==m_setClrDlg.DoModal()) 7 { 8 m_clr = m_setClrDlg.m_cc.rgbResult; // 保存用户选择的颜色 9 } 10 }
效果如下所示:
CC_RGBINIT:让对话框默认使用由rgbResult成员指定的颜色,
m_setClrDlg.m_cc.rgbResult = m_clr;即初始默认色由m_clr指定。
如果CC_RGBINIT未被设置,初始颜色是黑色。
CC_FULLOPEN作用是使颜色选框全部显示。