首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于刷新edit控件的一个有关问题

2012-12-22 
关于刷新edit控件的一个问题请问各位高人,我做了一个对话框登录界面,上面放了一个edit控件,我把该控件背景

关于刷新edit控件的一个问题
请问各位高人,我做了一个对话框登录界面,上面放了一个edit控件,我把该控件背景设为透明了
          pDC->SetBkMode(TRANSPARENT); 出现的问题是文字输入后重影(删不掉),于是我用Invalidate();做处理,发现可以删除了,但是整个对话框有微微的闪烁,我查了一下,需要用InvalidateRect(hWnd,&rect,TRUE);函数指定具体的刷新的区域,但是我不知道该如何使用InvalidateRect函数对edit控件进行操作,主要是&rect参数如何获取?我这个问题对高手来说应该比较简单,我刚学不久,是个菜鸟,希望见谅,谢谢
[解决办法]
两种方式:


CEdit MyEdit;
InvalidateRect(MyEdit.GetSafeHwnd(),NULL,TRUE);//此处的NULL的作用是刷新整个Edit控件



CEdit MyEdit;
RECT rc;
GetWindowRect(MyEdit.GetSafeHwnd(),&rc);
InvalidateRect(hWnd,&rc,TRUE);

[解决办法]
只是edit控件数据更新用UpdateData(false);不会抖动
如:
m_text1="8888";
UpdateData(false);

[解决办法]
谢谢楼上两位,但都不得行
[解决办法]
CRect rect;
((CEdit *)GetDlgItem(nID))->GetClientRect(&rect);
之后InvalidateRect刷新就行了

热点排行