请教一下TransparentBlt的用法,为什么我在ondraw里写了如下几句,却什么也不显示
CBitmap blt;
blt.LoadBitmap(IDB_BITMAP2);
CDC comDC;
comDC.CreateCompatibleDC(NULL);
comDC.SelectObject(blt);
TransparentBlt(pDC->m_hDC,0,0,200,200,comDC.m_hDC,0,0,100,100,RGB(255,255,255));

解决方案 »

  1.   

    BOOL TransparentBlt(
    HDC hdcDest,      // 目标DC
    int nXOriginDest,   // 目标X偏移
    int nYOriginDest,   // 目标Y偏移
    int nWidthDest,     // 目标宽度
    int hHeightDest,    // 目标高度
    HDC hdcSrc,         // 源DC
    int nXOriginSrc,    // 源X起点
    int nYOriginSrc,    // 源Y起点
    int nWidthSrc,      // 源宽度
    int nHeightSrc,     // 源高度
    UINT crTransparent  // 透明色,COLORREF类型
    );
      

  2.   

    例子参考:http://www.vckbase.com/document/viewdoc/?id=532
      

  3.   

    comDC.CreateCompatibleDC(NULL);===>
    comDC.CreateCompatibleDC(pDC);
      

  4.   

    错误应该是 
    BOOL TransparentBlt(
    HDC hdcDest,      // 目标DC
    int nXOriginDest,   // 目标X偏移
    int nYOriginDest,   // 目标Y偏移
    int nWidthDest,     // 目标宽度
    int hHeightDest,    // 目标高度
    HDC hdcSrc,         // 源DC
    int nXOriginSrc,    // 源X起点
    int nYOriginSrc,    // 源Y起点
    int nWidthSrc,      // 源宽度--------------------不能大于源图片的宽度
    int nHeightSrc,     // 源高度--------------------不能大于源图片的高度
    UINT crTransparent  // 透明色,COLORREF类型
    );
      

  5.   

    你可以把整个程序发过来给我看看吗,[email protected]
      

  6.   

    按照上面写了一次,可以运行,就是什么也没显示.
    改成其他stretchblt则有效果.
      

  7.   

    comDC.CreateCompatibleDC(NULL);
    -->
    参数不能为NULL,应该为你当前设备句柄
    comDC.CreateCompatibleDC(pDC);
      

  8.   

    就那幅图片改过了
    blt.LoadBitmap(IDB_BITMAP2);------>blt.LoadBitmap(IDB_BITMAP1);
      

  9.   

    我把你的例子中的位图换了一个也不行,呵呵,有一个很明显的区别,你的位图没格子而我的位图有子,这是怎么回事,你有msn吗,能不能留下一个
      

  10.   

    liuyan4794(青牛) ( ) 的有道理,可以显示了.
      

  11.   

    错误应该是 
    BOOL TransparentBlt(
    HDC hdcDest,      // 目标DC
    int nXOriginDest,   // 目标X偏移
    int nYOriginDest,   // 目标Y偏移
    int nWidthDest,     // 目标宽度
    int hHeightDest,    // 目标高度
    HDC hdcSrc,         // 源DC
    int nXOriginSrc,    // 源X起点
    int nYOriginSrc,    // 源Y起点
    int nWidthSrc,      // 源宽度--------------------不能大于源图片的宽度
    int nHeightSrc,     // 源高度--------------------不能大于源图片的高度
    UINT crTransparent  // 透明色,COLORREF类型
    );
      

  12.   

    CBitmap blt;
    blt.LoadBitmap(IDB_BITMAP1);
    CDC comDC;
    comDC.CreateCompatibleDC(pDC);
    comDC.SelectObject(blt);
    TransparentBlt(pDC->m_hDC,0,0,16,16,comDC.m_hDC,0,0,48,48,RGB(255,255,255));我的bitmap是32*32的