请教:在一个有背景的对放框上放一个CListCtrl,想让它是透明的, 显视出下面的对话框的背景,该怎么做啊?提供代码的,给高分!谢谢!

解决方案 »

  1.   

    参考:
    http://www.codeguru.com/listview/background_image.shtml
      

  2.   

    to oldworm这个是设置ListCtrl的背景的哦, 我想要对话框有背景,ListCtrl是透明的……
      

  3.   

    你在对话框的这个函数里面给你的ListCtrl返回空刷子试试
    HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here

    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  4.   

    Please have a try!BOOL CXXXListCtrl::OnEraseBkgnd(CDC* pDC) 
    {
        return TRUE;
    }
      

  5.   

    很难。你可以试试重载LISTCTRL的ONPAINT函数,用ALPHABLEND()来画
    也可以试试 UpdateLayeredWindow()
    不过这两个函数都需要 新的PLATFORM SDK的支持。当然,你也可以找到一些婉转的调用这两个函数的方法。
      

  6.   

    可以在重画背景的时候,将父窗口的相应位置拷贝到List框内的
    不过,由于window有优化处理,父窗口相应位置因为背遮住,可能没有进行重画,所以在拷贝前,先使用RedrawWindow函数重画父窗口相应位置
      

  7.   

    My software never has bugs. It just develop's random features.