CBitmap   bitmap1;
 bitmap1.LoadBitmap(IDB_HEU);   //这个IDB_BITMAP1要自己添加
 CBrush   brush1;
 brush1.CreatePatternBrush(&bitmap1);
 CBrush*   pOldBrush1   =   dc.SelectObject(&brush1);
 dc.Rectangle(0,0,400,400);  // 这些参数可以调整图片添加位置和大小
 dc.SelectObject(pOldBrush1);
使用windowsMFC在onpaint()函数里添加的 结果导致导致原来的东西都被覆盖了。。有没有变成将背景的透明度提高或是其他的变成底层的方法。

解决方案 »

  1.   

    BITMAP bm;
    CDC ImageDC;
    ImageDC.CreateCompatibleDC(&dc);
    CBitmap ForeBMP;
    ForeBMP.LoadBitmap(IDB_BITMAP1);
    ForeBMP.GetBitmap(&bm);
    CBitmap *pOldImageBMP=ImageDC.SelectObject(&ForeBMP);
    TransparentBlt(dc.GetSafeHdc(),0,0,750,750,ImageDC.GetSafeHdc(),0,0,bm.bmWidth,bm.bmHeight,RGB(0xff,0xff,0xff));
    ImageDC.SelectObject(pOldImageBMP);如果使用这段代码 透明颜色的RGB值是多少呢???
      

  2.   

    GDI+TransparentBlt函数原型如下: 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类型
    );
      

  3.   

    设置呀,图片中的某一色,你可以自己设定为透明呀,用个滴管程序去获取RGB值
      

  4.   

    背景图片绘制放到 WM_ERASEBKGND 中去, 绘制完了返回TRUE
      

  5.   

    我是个新手不懂得TransparentBlt函数怎么用 能否根据我给的信息来帮我写一下 谢谢了 另外目标DC是什么啊?