qyykf2017
2016-05-02 08:38
采纳率: 0%
浏览 1.1k

GDI绘图 双缓冲贴图 电脑死机

绘图的时候使用了双缓冲贴图 然后自己定义了一个透明贴图的函数DrawTransBitmap,贴图成功了,但是程序一运行内存就飞速增长。不关的话马上就死机了,小白一枚 求各位大神帮忙 万分感激


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qyykf2017 2016-05-02 08:41
                case WM_PAINT:
                    hdc = GetDC(hwnd);
                    mdc = CreateCompatibleDC(hdc);
                    bufdc = CreateCompatibleDC(hdc);
                    bufdc2 = CreateCompatibleDC(hdc);
                    GetClientRect(hwnd,&rect);
                    GetObject(hbm1,sizeof(BITMAP),&bm);
                    xlength = rect.right - rect.left;
                    ylength = rect.bottom - rect.top;
    
    
                    SelectObject(bufdc,hbm1);
                    hbm3 = CreateCompatibleBitmap(hdc,xlength,ylength);
                    SelectObject(mdc,hbm3);
                    BitBlt(mdc,0,0,2*bm.bmHeight,2*bm.bmWidth,bufdc,0,0,SRCCOPY);
    
    
                    SelectObject(bufdc2,hbm2);
                    GetObject(hbm2,sizeof(BITMAP),&bm);
                    DrawTransBitmap(mdc,300,500,0.125*bm.bmWidth,0.125*bm.bmHeight,bufdc2,300,0,RGB(255,255,255));
    
    
    
                    BitBlt(hdc,0,0,2*bm.bmHeight,2*bm.bmWidth,mdc,0,0,SRCCOPY);
                    DeleteDC(hdc);
                    DeleteDC(mdc);
                    DeleteDC(bufdc);    
                    break;
    

    这个是代码

    点赞 评论

相关推荐 更多相似问题