
给你一个相关的思路,程序最好是自己动手写,你要想要,网上肯定有。
首先建立一个一个按钮的单击响应函数
获取你选择的颜色
设置按钮的颜色( SetFaceColor() )
获取你选择的颜色
CColorDialog dlg
if(IDOK==dlg.DoModal())
{
m_clr=dlg.m_cc.rgbResult
}
思路:在控件显示之前,每一个控件会向父对话框发送一个WM_CTLCOLOR消息,这个消息缺省处理函数CWnd::OnCtlColor返回一个HBRUSH类型的句柄,这样,就可以设置前景和背景文本颜色,并为控件或者对话框的非文本区域选定一个刷子。实现:
① 先创建一个基于对话框的工程,命名为test,然后在对话框上加入一个ListBox控件。
② 在testDlg.h中加入一个成员变量:HBRUSH m_hbrush
③ 在OnInitDialog()中,加入m_hbrush=CreateSolidBrush(RGB(0,0,0)此处设置的RGB值可以改变ListBox的背景色。为了观看ListBox中字的颜色变化,给ListBox加入几个字:利用Class Wizard给ListBox加入一个Control类型的成员变量m_ctrlListBox,然后在OnInitDialog()加入如下所示的代码:
m_ctrlListBox.AddString("第一行")
m_ctrlListBox.AddString("第二行")
④ 点击Class Wizard,给testDlg加入WM_CTLCOLOR事件,单击Edit Code按钮,然后把改函数的内容替换为如下代码:
if(nCtlColor== CTLCOLOR_LISTBOX)
{
pDC->SetBkMode(TRANSPARENT)
//此处设置字体的颜色
pDC->SetTextColor(RGB(255,255,255))
return m_hbrush
}
else
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)