想做一个透明的对话框,上面显示的是一幅不规则的bitmap(带镂空哦)
怎么做啊?
把对话框设置为透明不行,显示出来还是白色的低图。为什么?
怎样才能做成透明的呢?

解决方案 »

  1.   

    参考:
    http://www.vckbase.net/document/viewdoc/?id=541
      

  2.   

    http://www.vckbase.net/document/viewdoc/?id=759
      

  3.   

    那个好像正是我想要的。可是,CBitmapDialog 是个什么类啊?怎么msdn里面没有呢?查不到啊。怎么用?
      

  4.   

    CBitmapDialog好像是从CDialog这个类派生的。
      

  5.   

    void DrawSemiTransparentBitmap(CDC *pDstDC, int x, int y, int nWidth, int nHeight,
        CDC* pSrcDC, int xSrc, int ySrc)
    {
        CDC dcCompatible;
        CBitmap *pBitmapOld;
        CBitmap bm;    dcCompatible.CreateCompatibleDC(pDstDC);
        bm.CreateCompatibleBitmap(pDstDC, nWidth, nHeight);
        pBitmapOld = dcCompatible.SelectObject(&bm);
        dcCompatible.FillSolidRect(CRect(0, 0, nWidth, nHeight), RGB(0x7F, 0x7F, 0x7F));
        pDstDC->BitBlt(x, y, nWidth, nHeight, &dcCompatible, 0, 0, SRCAND);
        dcCompatible.SelectObject(pBitmapOld);    pDstDC->BitBlt(x, y, nWidth, nHeight, pSrcDC, 0, 0, SRCPAINT);
    }