您的位置:程序门 -> vc/mfc -> 界面



【简单的问题】如何引发wm_ctlcolor消息


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


【简单的问题】如何引发wm_ctlcolor消息[已结贴,结贴人:askquestion1]
发表于:2007-05-21 11:09:56 楼主
我在对话框程序的onctlcolor程序中改变了控件的颜色,该函数中会根据变量的值来设置标签的颜色。
在改变了变量的值后,如何引发消息来改变颜色啊?
大侠帮帮忙!
发表于:2007-05-21 11:13:451楼 得分:5
在对话框中增加这个消息的触发事件。

那你怎么添加这个函数的?没有使用classwinznd?
发表于:2007-05-21 11:14:032楼 得分:10
好像这是一个16位下的消息吧,32位下已经没有这个消息了,不过mfc还是用了个界面,不过内部作了处理.下面是msdn中的原文:
the   wm_ctlcolor   message   has   been   replaced   by   more   specific   notifications   in   32-bit   versions   of   windows.   these   replacements   include   the   following:

wm_ctlcolorbtn  
wm_ctlcoloredit  
wm_ctlcolordlg  
wm_ctlcolorlistbox  
wm_ctlcolorscrollbar  
wm_ctlcolorstatic  
发表于:2007-05-21 11:17:563楼 得分:15
在实际使用mfc中,好像也不用你来触发这个消息吧,在显示时它会自己来调用.
发表于:2007-05-21 11:28:084楼 得分:0
wltg2001(红猪),
我未经实际考察,有些想当然了,多谢纠正
发表于:2007-05-21 11:53:425楼 得分:5
invalidate()
发表于:2007-05-21 11:57:386楼 得分:0
我就是想让标签数值超过范围时是红色,正常时是绿色,使用appwizard添加的wm_ctlcolor消息处理的。
发表于:2007-05-21 12:00:017楼 得分:0
invalidate()
没有用啊,不会引发onctlcolor是处理函数
发表于:2007-05-21 12:05:178楼 得分:5
对对话框使用invalidate(),而不是对标签
发表于:2007-05-21 12:40:039楼 得分:0
如果数据经常不会,使用invalidate()会导致整个界面都佷闪,有没有更好的方法啊?
发表于:2007-05-21 12:40:2510楼 得分:0
如果数据经常变化,使用invalidate()会导致整个界面都佷闪,有没有更好的方法啊?
发表于:2007-05-21 12:43:2111楼 得分:0
谢谢大家的回复,是我的代码中有个错误,直接setdlgitemtext就会引发整个消息了.结帖


快速检索

最新资讯
热门点击