getdibits和setdibits函数如何使用?(50分)

  • 主题发起人 主题发起人 leebons
  • 开始时间 开始时间
L

leebons

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾接招,一下是我写的一段代码.这段代码具体任务是想完成这么
一个功能:先用函数bitblt捕捉当前屏幕到image1,然后一个"转化"把图形显示在
image2,可是运行结果image2是一片空白,不知怎么回事,是不是getdibits和
setdibits参数设置有问题?请大虾指点迷津.
var

FullscreenCanvas:TCanvas;
dc:HDC;
a,b:integer;
ab:array[0..480000] of byte; //定义字节数组来存放数据;因为我的屏幕分辨率是800*600
p:^byte;
e:BITMAPINFO ;
begin
dc:=getdc(0);
image1.Width :=screen.width;
image1.Height :=screen.Height
a:=(screen.Width div screen.PixelsPerInch)*100;//得到分辨率x
b:=(screen.height div screen.pixelsperinch)*100;//得到分辨率y
bitblt(image1.canvas.handle,0,0,a,b,dc,0,0,srccopy);//把当前屏幕复制到image1;
image1.Refresh
image2.Width :=screen.width;
image2.Height :=screen.Height
GetDIBits(getdc(0),image1.canvas.handle,1,600,p,e,DIB_RGB_COLORS);FullscreenCanvas.Free;
setdibits(getdc(0),image2.canvas.handle,1,600,p,e,DIB_RGB_COLORS );
ReleaseDC (0,DC);
end;
 
;为什么要这样做了?
 
请继续或结束
 
接受答案了.
 
后退
顶部