问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

使用vc如何改变控件颜色

发布网友 发布时间:2022-04-10 13:04

我来回答

3个回答

热心网友 时间:2022-04-10 14:33

有两种方法。其一,可以在父类中指定控件的颜色,或者利用MFC4.0新的消息反射在控件类中指定颜色。 当控件需要重新着色时,工作框调用父窗口(通常是对话框)的CWnd: : OnCrtlColor,可以在父窗口类中重置该函数并指定控件的新的绘画属性。例如,下述代码将对话中的所有编辑控件文本颜色改为红色:
HBRUSH CAboutDig : : OnCtlColor (CDC * pDCM , CWnd * pWnd , UINT nCtlColor)
{
HBRUSH hbr = CDialog : : OnCtlColor (pDC, pWnd , nCtlColor )
//Draw red text for all edit controls .
if (nCtlColor= = CTLCOLOR_EDIT )
pDC —> SetTextColor (RGB (255, 0 , 0 , ) )
return hbr
}
然而,由于每个父窗口必须处理通知消息并指定每个控件的绘画属性,所以,这种方法不完全的面向对象的方法。控件处理该消息并指定绘画属性更合情合理。消息反射允许用户这样做。通知消息首先发送给父窗口,如果父窗口没有处理则发送给控件。创建一个定制彩色列表框控件必须遵循下述步骤。
首先,使用ClassWizard 创建一个CListBox 的派生类并为该类添加下述
数据成员。
class CMyListBox publilc CListBox
{

private
COLORREF m_clrFor // foreground color
COLORREF m_clrBack //background color
Cbrush m_brush //background brush

}
其次,在类的构造函数中,初始化数据中。
CMyListBox : : CMyListBox ()
{
//Initialize data members .
m_clrFore =RGB (255 , 255 , 0) //yellow text
m_clrBack=RGB (0 , 0 , 255) // blue background
m_brush . CreateSolidBrush (m _clrBack )
}

最后,使用ClassWizard处理反射的WM_CTLCOLOR(=WM_CTLCOLOR)消息并指定
新的绘画属性。
HBRUSH CMyListBox : : CtlColor (CDC* pDC, UINT nCtlColor )
{
pDC—>SetTextColor (m_clrFore)
pDC—>SetBkColor (m_clrBack)

return (HBRUSH) m_brush.GetSafeHandle ()
}
现在,控件可以自己决定如何绘画,与父窗口无关。

热心网友 时间:2022-04-10 15:51

  vc改变控件颜色,需要响应WM_CTLCOLOR消息,这个消息是在即将绘制控件时发出,是对话框创建的最后一个系统消息,得到控件ID后可以调用SetTextColor设置文本颜色等等。
  下面是响应函数
  HBRUSH CSetDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  {
  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  if(pWnd->GetDlgCtrlID() == IDC_SET_PENWIDTH){
  pDC->SetTextColor(RGB(255, 0, 0));
  }
  // TODO: 在此更改 DC 的任何特性
  // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  return hbr;
  }
  

热心网友 时间:2022-04-10 17:26

才20分不舍得发啊
100分我就发
如何在VC中改变控件的背景色

正文:一、在一个MFC应用程序中,要改变控件的背景色可通过重载OnCtlColor()函数来实现。方法是在该函数中设置所需颜色后再返回一个画刷句柄便可重绘控件背景色。OnCtlColor()函数对于控件背景色的处理是通过捕捉相应的控件消息来实现的。常用的此类消息有:CTLCOLOR_DLG 对话框 CTLCOLOR_EDIT 编辑框CTLCOL...

vc中如何改变对话框控件的颜色

pDC->SetTextColor(RGB(255, 0, 0));}// TODO: 在此更改 DC 的任何特性 // TODO: 如果默认的不是所需画笔,则返回另一个画笔return hbr;} 但是按钮控件是个例外,要想改变按钮控件的颜色或者是字体颜色,需要自己从CButton派生出自己的BUTTON类,然后再这个派生类中重写DrawItem函数,最后在对话框...

VC++ 图像控件 初始颜色设置

回答:还需要在OnPaint()函数当中加入语句

VC中改变窗口背景颜色和控件背景颜色

1.改变对话框的背景色 在C…App类中的InitInstance()里添加 SetDialogBkColor(RGB(0,192,0),RGB(0,0,0));2.如果想改变静态文本或单选按钮的背景色可以用你说的那个获得控件ID,然后设置背景色,具体步骤:(1)响应对话框类的WM_CTLCOLOR消息生成OnCtlColor函数 (2)为对话框类添加成员变量CBrush m_...

VC中如何改变编辑控件中文本的颜色?

响应WM_CTLCOLOR消息,在里面通过句柄判断一下是否是你想要改变颜色的控件,如果是,使用下列函数:SetTextColor 文本前景色 SetBkColor 文本背景色就可以改变了

VC 如何改变按钮控件文字颜色和底色呢?

试试在 消息 WM_CTLCOLOR 里面修改!很容易……给你个代码段 HBRUSH CShowDataView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CView::OnCtlColor(pDC, pWnd, nCtlColor);if(CTLCOLOR_BTN == nCtlColor ){ //HBRUSH brush = ::CreateSolidBrush(RGB(255,255,...

如何用VC改变ClistCtrl控件被选中时的颜色?

蓝色 就是当前操作系统设置的颜色,跟你在桌面上选中“我的电脑”时出现的蓝色应该是一样的。一种方法就是更改系统设置,在程序里可以改注册表。但是这样不好。还是找找其他方法,呵呵

vc 怎么设置一个编辑框的字体的大小或者颜色

调用字体对话框,来改变编辑框的字体和颜色1.添加一个编辑框 ID为 IDC_EDIT12.为编辑框添加变量 CEdit m_edit3.添加一个按钮触发该事件。void CTeTDlg::OnButton1() //添加一个按钮 { // TODO: Add your control notification handler code here //获得控件的当前字体 LOGFONT ...

VC++ 图像控件 初始颜色设置

控件属性里有个值是控制的,选中控件->属性你就能看到。调用该值进行控制就好了。

vc控件在disable情况下是灰色,怎么才能在disable情况下不是灰色,是别...

要在onctrl 函数里面改写 或者你重新定义控件 自己画控件

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
郑州市金水区丰庆路办事处魅力丰庆 金龙社区居委会河南省郑州市金水区丰产路街道金龙社区居委 批发和零售业商品销售和库存报表批发和零售业商品销售和库存怎么填 vb 入库单制作 甲减是哪个指标不正常 甲减如何确诊 ...草案拟规定点餐浪费也要收钱,平常你都是怎么避免浪费的呢?_百度知 ... 金牌励志系列·名著的力量:向文学大师学英语目录 由于雨季造成商场消售不好,怎样写报表? ...的自营销售与专柜销售收入支出等用什么科目区分?利润表又如何做? 别人微信发我图片如果万一对方发的图片有病毒我会中招吗? 最近有什么特别火的梗? qq发送个图片给对方(病毒图片)怎么控制对方电脑呢!! QQ发的图片也有可能是病毒吗?怎样辨认和预防? 有张电脑病毒图片怎么上传 要别人往自己邮箱发照片会不会带来病毒 手机病毒能否传发手机主人的照片或视频给造病毒的人? 如何区分图片病毒 听说有 聚会照片的短信有病毒 是怎么回事? 手机里的照片怎么上传到电脑上?会不会中病毒? 请问红色和哪种颜色好搭配 (美术) 红色与什么颜色搭配最好看 如何给别人发送病毒图片 让别人手机中病毒 红色和什么颜色配最搭配? 红色与什么颜色配最好看 新买的惠普G4-1060tx,为什么WORD和EXCEL不能用? 怎么在图片里藏病毒? 红色和什么颜色配好看 什么颜色和红色最适合搭配 华为什么手机支持登录两个 我的电脑中病毒了,给别人发照片会不会传给对方病毒 80年代最火的梗流行语 腰围2尺6寸等于多少厘米? 微博评论可以发送携带病毒的图片吗? 图片是如何加载病毒的? 王思聪都带火了哪些梗? 发春天的照片和病毒怎么shuo 腰围2尺6买裤子是不是要买XXL? 照片感染病毒怎么办 身高1米67腰围2尺六的人大概多重 2尺6的腰围是多少公分 苹果6感应器打开了为什么还是不能自动旋转屏幕 腰围2尺6是多少厘米? iphone5 电信版 重力感应坏了 不能横屏 重力感应游戏都不能玩,求解啊! iPhone5重力感应失灵 只能往一边横屏 怎么倒也倒不回来 最新wps如何添加在三个选项中需要的打对勾 求敢达决战平民阵容推荐 敢达决战新手快速升级技巧 新手怎么快速升级 敢达决战中后期怎么玩 中后期玩法攻略 敢达决战怎么升星进阶 升星进阶攻略
  • 焦点

最新推荐

猜你喜欢

热门推荐