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

解决方案 »

  1.   

    两种方式:CEdit MyEdit;
    InvalidateRect(MyEdit.GetSafeHwnd(),NULL,TRUE);//此处的NULL的作用是刷新整个Edit控件CEdit MyEdit;
    RECT rc;
    GetWindowRect(MyEdit.GetSafeHwnd(),&rc);
    InvalidateRect(hWnd,&rc,TRUE);
      

  2.   

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

  3.   

    CRect rect;
    ((CEdit *)GetDlgItem(nID))->GetClientRect(&rect);
    之后InvalidateRect刷新就行了