mfc如何实现点击按钮d出颜色对话框,选择颜色改变按钮颜色,,, 这个怎么做

mfc如何实现点击按钮d出颜色对话框,选择颜色改变按钮颜色,,, 这个怎么做,第1张

给你一个相关的思路,程序最好是自己动手写,你要想要,网上肯定有。

首先建立一个一个按钮的单击响应函数

利用颜色对话框类CColorDialog定义一个对象dlg

获取你选择的颜色

设置按钮的颜色( 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)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/7698654.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存