我遇到个问题: 
         在基本对话框上有static控件 和 一个listBox。  当我重画static控件时,listBox消失了,只有在listbox上用什么拖一拖才显示,这是什么问题啊!

解决方案 »

  1.   

    我是在类函数中调用        
    Invalidate();
    UpdateWindow();实现的
      

  2.   


    可以一起讨论讨论嘛。
     
    还有InvalidateRect(&rect);时static图不会被刷新。 我网上查了查都说可以的,为什么呢???
      

  3.   

    InvalidateRect(&rect)
    这个rect应该是static的范围。另外帖代码。。
      

  4.   


    void CServerDlg::OnPaint() 
    {
    if (IsIconic())
    {
    ……
    }
    else
    {
    CDialog::OnPaint();
     //重绘图像区域
    PAINTSTRUCT ps;
    CRect rt[n];
    CDC* pDC[n];
    for(int i=0; i<n; i++)
    {
    m_pDrawWnd[i]->GetClientRect(&rt[i]);    
    pDC[i]=m_pDrawWnd[i]->BeginPaint(&ps);
    DrawOnMen();
    pDC[i]->BitBlt(0, 0, rt[i].Width(), rt[i].Height(), &m_memDC[i], 0, 0, SRCCOPY);    
    m_pDrawWnd[i]->EndPaint(&ps);
    }
    }

    }
    其中对应10个static控件。void CServerDlg::DrawOnMen()
    {
        CRect rect[n];
    for(int i=0; i<10; i++)
    {
    m_pDrawWnd[i]->GetClientRect(&rect[i]);
       if(i == 0 )
       {
    COLORREF crl = GetSysColor(COLOR_3DFACE);
    m_memDC[i].FillSolidRect(rect[i], crl); 
    m_memDC[i].FillSolidRect(&rect[i], 0x00FFFFFF);
    CPen pen(PS_SOLID,1,RGB(0,0,0));
    m_memDC[i].SelectObject(&pen);
       } }
    }刷新后我的listbox不见了啊??为什么呢??
      

  5.   

    给对话框增加 WS_CHILDWINDOW 风格
      

  6.   

    你的static控件把你的listbox控件盖住了?
      

  7.   

    你看下是不是创建的时候CREAT函数坐标弄覆盖了
      

  8.   


    不是被static盖住了,是被dialog覆盖了。就是那边原来的listbox没了,然后随便用什么窗口划一下或者最小化后就又有了。
      

  9.   

    发送重绘消息的时候,你的listctrl没有做处理。我碰到过