问题描述
- MFC中对于CColorDialog的修改
-
我希望同时设置前景色背景色,我用了CColorDialog,但是它只有一个颜色设置,我想修改成同时设置两个颜色,怎么改?
解决方案
参考:
http://www.codeproject.com/Articles/13426/Custom-Color-Dialog-Box
你在InitDialog里面加上一个两个按钮,一个叫前景一个叫背景,切换的时候设置不同的颜色。
解决方案二:
但是恐怕对你现在的水平有些难。只是告诉你有这样的方式可以自定义。
解决方案三:
CColorDialog 调用后返回一个颜色索引值,可以用此值同时设置多个对象,不要说两个,3个、或者更多都没有问题。
窗体的前景色的设置方法,这个需要你掌握的知识点。然后用你获取的颜色索引替代下面代码中的 RGB 颜色。
为dialog添加消息WM_CTRLCOLOR的映射,在OnCtlColor函数中修改为如下代码:
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC)
{
//pDC->SetTextColor(RGB(0,0,255));//字体色
pDC->SetBkColor(RGB(210,230,211));//字体背景色******
HBRUSH B = CreateSolidBrush(RGB(210,230,211)); //背景色
return B;
}
if(nCtlColor == CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(0,0,255));//字体色
}
return hbr;
时间: 2024-07-31 06:12:54