2 qyykf2017 qyykf2017 于 2016.05.02 16:38 提问

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

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


2个回答

qyykf2017
qyykf2017   2016.05.02 16: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;

这个是代码

CSDNXIAOD
CSDNXIAOD   2016.05.02 16:41

GDI双缓冲绘图
GDI双缓冲绘图
GDI双缓冲绘图
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!