比如一个变量value(0-100)
.value> 50第一自动背景为红色.value <50第2个为红色
最好提供详细点方法.
我用定时来判断变量.
CMyEditCtrl myedit3;用定时判断变量,然后
void CTab4::OnTimer(UINT nIDEvent)
{
if(value>50)
myedit3.SetBgColor(RGB(255,20,255));
}
发现输入框背景颜色改变了,但是中间的输入部分是白色的.有朋友说用
OnCtlColor().来实现.但是需要调用到invalidate()来刷新.
我不想用invalidate().因为这个函数会把整个窗口刷新的.感觉到其他控件都会闪烁的.
(如何只刷新这个控件.不影响其他控件的.)
如何实现动态改变背景颜色的,期待DX给点方法.
.value> 50第一自动背景为红色.value <50第2个为红色
最好提供详细点方法.
我用定时来判断变量.
CMyEditCtrl myedit3;用定时判断变量,然后
void CTab4::OnTimer(UINT nIDEvent)
{
if(value>50)
myedit3.SetBgColor(RGB(255,20,255));
}
发现输入框背景颜色改变了,但是中间的输入部分是白色的.有朋友说用
OnCtlColor().来实现.但是需要调用到invalidate()来刷新.
我不想用invalidate().因为这个函数会把整个窗口刷新的.感觉到其他控件都会闪烁的.
(如何只刷新这个控件.不影响其他控件的.)
如何实现动态改变背景颜色的,期待DX给点方法.
解决方案 »
- 控件类
- 求最短的代码,判断当前windows是32位还是64位的
- 用FindXXXChangeNotification可以知道某个目录下有文件(夹)变动, 有办法知道是哪个文件(夹)变动了吗???
- 像windows任务栏一样,自动停靠后不会遮盖住桌面,怎么做?
- 问个最 最 最 最 简单的问题。
- 得到一个进程的ID以后怎么知道这个进程是由哪个用户创建的?
- VC中有没有一个象VB中的mid这样的函数?
- 提问关于WinSock的极限,一个socket服务端最多能连接几个客户?连接多少不至于效率过底?
- flash文件格式
- hydnoahark(诺亚方舟)在吗?
- atl中,怎么设置wndproc 钩子,来达到处理消息。
- 急请各位大虾请出手帮助!偶92年用过BC++3.1,如今重新学习VC,遇到菜菜的问题:
{
if(value> 50)
{
if (m_hBrush)
{
::DeleteObject(m_hBrush);
m_color = RGB(255,20,255);
m_hBrush = CreateSolidBrush(RGB(255,20,255));
}
myedit3.Invalidate();
}
}
HBRUSH CTab4::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
{ // Set the text color to red
pDC->SetBkColor(color );
hbr = m_hBrush ;
} return hbr;
}
{
我把CBrush m_hBrush
请楼上几位高手指点一下.如何运用这个函数的.
现在是用在定时里用 myedit3.Invalidate();
这个方法.
发现闪烁.
现在如何才能解决的?
void GetRect( LPRECT lpRect ) const;
在CEdit中有一个函数可以得到它的区域大小的。