大家帮忙分析一下这段代码啊!!! 程序中调用的是bitblt API函数,该函数要求建立一个comptibleHDC,所以就这样做了用bitblt API 有可能比delphi的作图快一点,但没有试验过 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 destdc := Canvas.Handle; //保存画布的句柄 memdc := CreateCompatibleDC(destdc); bm := CreateCompatibleBitmap(destdc, Width, Height); //创建内存位图 sbm := SelectObject(memdc, bm); //开始在内存中的位图上画 Canvas.Handle := memdc; //这一句,主要是利用画布的pen,brush等定义好了的属性 Draw;//画图形的函数 BitBlt(destdc,0,0, Width,Height, memdc,0,0, SRCCOPY); //拷贝内存位图到画布 SelectObject(memdc, sbm); DeleteObject(bm); Canvas.Handle := destdc; //恢复 DeleteDC(memdc); //释放内部对象 你这个是典型的api的方法,可以尝试使用delphi的方式:var bmp:TBitmap;begin bmp:=TBitmpa.Create; bmp.width:=width; bmp.height:=height; try //Draw On The Bitmap //Draw the bitmap on the canvas finally bmp.free; end;end; 请教如何打印Image中的内容 释放对象 Quickrep预览与打印不一致 在线等~ 网络IP地址问题 流媒体项目外包或者兼职,xdjm有时间的联系我。 主 题: 大家来帮帮我吧?我晕了。这难道还有错误么? 急了! 该怎么检索屏幕鼠标? 大侠,谁能帮帮我,高分求助 安装程序中怎样注册一个控件呢? 请问一个关于edit的问题! 请问在哪可以找到install shield for delphi6?
memdc := CreateCompatibleDC(destdc);
bm := CreateCompatibleBitmap(destdc, Width, Height); //创建内存位图
sbm := SelectObject(memdc, bm); //开始在内存中的位图上画
Canvas.Handle := memdc; //这一句,主要是利用画布的pen,brush等定义好了的属性
Draw;//画图形的函数
BitBlt(destdc,0,0, Width,Height, memdc,0,0, SRCCOPY); //拷贝内存位图到画布
SelectObject(memdc, sbm);
DeleteObject(bm);
Canvas.Handle := destdc; //恢复
DeleteDC(memdc); //释放内部对象
var
bmp:TBitmap;
begin
bmp:=TBitmpa.Create;
bmp.width:=width;
bmp.height:=height;
try
//Draw On The Bitmap
//Draw the bitmap on the canvas
finally
bmp.free;
end;
end;