本帖最后由 VisualEleven 于 2014-07-20 23:04:43 编辑

解决方案 »

  1.   

    1、memDC.FillRect(client,&BkBrush);//绘制背景
    这个BkBrush不会就是白色吧?2、MSDN said:
    The TransparentBlt function supports all formats of source bitmaps. However, for 32 bpp bitmaps, it just copies the alpha value over. 
    你TransparentBlt的不是32位bitmap吧?
      

  2.   

    你好,我的BKBrush不是白色的。 bitmap也不是32位带alpha 的。
      

  3.   

    你要注意,我说TransparentBlt透明不了,是在双缓冲绘图条件下的,如果不是双缓冲就可以透明的。
      

  4.   

    调用完TransparentBlt,还用调用BitBlt么?
      

  5.   

    BOOL TransparentBlt(     
    int xDest,     
    int yDest,     
    int nDestWidth,     
    int nDestHeight,     
    CDC* pSrcDC,     
    int xSrc,     
    int ySrc,     
    int nSrcWidth,     
    int nSrcHeight,     
    UINT clrTransparent   
    );  // 此函数同样具有缩放功能,但此函数最后一个参数用来指定作为透明色的RGB;//把最后一个参数换成白色的RGB试试看
      

  6.   

    有没有人尝试过????多层CDC memDC双缓冲绘图下,如何使用TransparentBlt函数???
      

  7.   

    你先调用 TransparentBlt,然后又调用 bitblt,虽然你用 TransparentBlt 绘制到内存DC上是透明的,但是后面如果用bitblt绘制到设备DC上的时候,是不会保留透明效果的除非你在绘制到设备DC的时候,也使用 TransparentBlt 函数
      

  8.   


    在绘制到设备DC上,如果用TransparentBlt 的话,会闪烁,而且会影响背景颜色。因为必须TransparentBlt 必须指定透明颜色......
      

  9.   


    你说得很对,正是这个问题.......我4楼也给你说了,呵呵,别人帮你看问题,顶多说下思路,一般不会亲自去帮你调试,还需要你自己去试
    因为我要手动绘图,为了防止闪烁,就做了两次缓冲。图像做透明是在CDC mem上面,设备pDC跟背景又做了一个CDC memDC缓冲。不知道你有何高见????
      

  10.   


    在此请教一问题:
    http://bbs.csdn.net/topics/390849854?page=1#post-397924195
     
    vs2010 如何实现 preview and thumbnail  在新建mfc向导里面设置了,但没有效果。
      

  11.   

    在此请教一问题:
    http://bbs.csdn.net/topics/390849854?page=1#post-397924195
     
    vs2010 如何实现 preview and thumbnail  在新建mfc向导里面设置了,但没有效果。