好文档 - 专业文书写作范文服务资料分享网站

MFC颜色调配 vc++6.0颜色设置,如何修改控件颜色

天下 分享 时间: 加入收藏 我要投稿 点赞

效果展示

1.新建一个MyEdit类,该类继承自CEdit类,并添加相关变量和函数;

在MyEdit类的头文件(.h)中定义如下变量和函数: private:

COLORREF m_BackgroundColor;//背景颜色 COLORREF m_TextColor;//文本颜色 CBrush m_brushBk;//笔刷

public:

void SetBackgroundColor(COLORREF color);//设置背景颜色 void SetTextColor(COLORREF color);//设置文本颜色 COLORREF GetBackgroundColor() const;//获取背景颜色 COLORREF GetTextColor() const;//获取文本颜色

在MyEdit类的源文件(.cpp)中给变量赋初值,并书写函数体如下:

MyEdit::MyEdit()//构造函数 { }

m_BackgroundColor=RGB(0,0,0); m_TextColor=RGB(250,250,250);

MyEdit::~MyEdit()//析构函数 {

m_brushBk.DeleteObject();//释放笔刷

}void MyEdit::SetBackgroundColor(COLORREF color)//设置背景颜色

{

m_BackgroundColor=color;

}void MyEdit::SetTextColor(COLORREF color)//设置文本颜色 { }

COLORREF MyEdit::GetBackgroundColor() const//获取背景颜色 { }

m_TextColor=color;

return m_BackgroundColor;

COLORREF MyEdit::GetTextColor() const//获取文本颜色 { }

return m_TextColor;

打开类向导,给MyEdit类添加 =WM_CTLCOLOR 消息反射

在MyEdit类的源文件中的CtlColor()中添加如下代码:

HBRUSH MyEdit::CtlColor(CDC* pDC, UINT nCtlColor) {

// TODO: Change any attributes of the DC here

m_brushBk.DeleteObject();

m_brushBk.CreateSolidBrush(m_BackgroundColor);

pDC->SetBkColor(m_BackgroundColor); pDC->SetTextColor(m_TextColor);

// TODO: Return a non-NULL brush if the parent's handler should

not be called return (HBRUSH)m_brushBk.GetSafeHandle(); }

2.新建一个ColorMatch类,该类继承于CDialog类,设置对话框页面布局,添加变量和函数;

设置对话框所需要的控件,并进行布局

打开类向导为控件绑定变量

在ColorMatch类的头文件中加入如下代码: public:

CFont m_Font;//字体对象

void SetColor();//设置颜色函数

打开类向导为ColorMatch类添加如下消息映射

在ColorMatch类的源文件中加入如下代码:

BOOL CColorMatch::OnInitDialog()// 初始化函数 {

CDialog::OnInitDialog();

// TODO: Add extra initialization here

m_slider_red.SetRange(0,255,false);//设置滑动控件的范围 m_slider_green.SetRange(0,255,false);//设置滑动控件的范围 m_slider_blue.SetRange(0,255,false);//设置滑动控件的范围 m_Font.CreateFont(50,0,0,0,0,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,LPCTSTR(\rial\)); m_EE.SetFont(&m_Font);//设置显示的字体大小 m_red.SetBackgroundColor(RGB(255,0,0)); m_green.SetBackgroundColor(RGB(0,255,0)); m_blue.SetBackgroundColor(RGB(0,0,255)); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE

}

void CColorMatch::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) /*滑动条被滑动时触发*/

{ }

CDialog::OnHScroll(nSBCode, nPos, pScrollBar);

// TODO: Add your message handler code here and/or call default

SetColor();

void CColorMatch::SetColor()//设置颜色函数

{ }

int red=m_slider_red.GetPos();//获取红色值

int green=m_slider_green.GetPos();//获取绿色值 int blue=m_slider_blue.GetPos();//获取黄色值 COLORREF color=RGB(red,green,blue);//合成RGB值 m_EE.SetBackgroundColor(color);//设置背景颜色 m_EE.SetTextColor(16777215-color);//设置字体颜色

CString colorstr,redstr,greenstr,bluestr; colorstr.Format(\,color);//颜色字符串化 SetDlgItemText(IDC_EDIT,colorstr); redstr.Format(\,red); greenstr.Format(\,green); bluestr.Format(\,blue);

SetDlgItemText(IDC_EDIT_RED,redstr);//修改各种颜色的数值 SetDlgItemText(IDC_EDIT_GREEN,greenstr); SetDlgItemText(IDC_EDIT_BLUE,bluestr);

MFC颜色调配 vc++6.0颜色设置,如何修改控件颜色

效果展示1.新建一个MyEdit类,该类继承自CEdit类,并添加相关变量和函数;在MyEdit类的头文件(.h)中定义如下变量和函数:private:COLORREFm_BackgroundColor;//背景颜色COLORREFm_TextColor;//文本颜色CBrushm_brushB
推荐度:
点击下载文档文档为doc格式
9t2sq19oh12xn8u9whcj4n25q6nxtf004cy
领取福利

微信扫码领取福利

微信扫码分享