RT

解决方案 »

  1.   

    我把CStatic加到一个bmp图片上怎么就不是透明的??
      

  2.   

    CImageList m_FlashBmpList;
    //Load Image From FileName
    HBITMAP hBitmap =(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
    FileName, IMAGE_BITMAP, 
    0, 0,LR_CREATEDIBSECTION|LR_LOADFROMFILE);
    if( hBitmap == NULL )
    {
    AfxMessageBox("加载位图" + FileName + "失败", MB_OK, 0);
    return;
    }
    CBitmap bm;
    bm.DeleteObject();
    bm.Attach(hBitmap);
    if(m_FlashBmpList.m_hImageList == NULL)
    {
    BITMAP bmpInfo;
    bm.GetBitmap(&bmpInfo);
    m_FlashBmpList.Create(bmpInfo.bmWidth, bmpInfo.bmHeight, ILC_COLOR32 | ILC_MASK, 0, 1);
    }
    //RGB(255, 255, 255) 是透明色,就在当前位图上希望透明的颜色,这里是白色,
    //因为图片的背景色是白色
    m_FlashBmpList.Add(&bm, RGB(255, 255, 255));
    int index = 0;
    m_FlashBmpList.Draw(pDC, index, pos/*画图的位置POINT*/, ILD_NORMAL);
      

  3.   

    m_FlashBmpList.Draw(pDC, index, pos/*画图的位置POINT*/, ILD_TRANSPARENT);
      

  4.   

    1。建议将BMP图片换成ICO,
    2。否则按niaosuy的做法使BMP按照所希望的背景色使其透明
    3。如果窗口背景色为纯色,则更简单的是改变BMP的背景色为窗口的背景色