bitBlt函数的用法,截取屏幕的过程如下 (20分)

  • 主题发起人 主题发起人 etu5
  • 开始时间 开始时间
E

etu5

Unregistered / Unconfirmed
GUEST, unregistred user!
请问bitBlt函数的最后一个参数是什么意思知道吗?
bitBlt(destDC:HDC;x,y,width,height:integer;srcDC:HDC;x,y:integer;rop:cardinal)

我的目的是为了截取屏幕,全部代码如下:
procedure TForm1.getScreen(LeftPos, TopPos, RightPos, BottomPos: integer);
var
recWidth,recHeight:integer;
sourcedc,destdc,bhandle:THandle;
bitmap:TBitmap;
begin
recWidth:=rightPos-leftPos;
recHeight:=bottomPos-topPos;
sourcedc:=CreateDC('display','','',nil);
destdc:=CreateCompatibleDC(sourcedc);
bhandle:=CreateCompatibleBitmap(sourcedc,recWidth,recHeight);
selectObject(destdc,bhandle);
bitBlt(destdc,0,0,recWidth,recHeight,sourcedc,leftPos,topPos,0); //问题这儿
bitmap:=TBitmap.Create;
bitmap.Handle:=bhandle;
bitmap.SaveToStream(bmpStream);
bmpstream.Position:=0;
leftSize:=bmpStream.Size;
Memo1.Lines.Add('getScreen');
bitmap.Free;
DeleteDC(destdc);
ReleaseDC(bhandle,sourcedc);
end;

截取屏幕调用 getScreen(0,0,800,600)
 
是拷贝类型。。。
 
我应该怎样写ROP那个参数呢?

这个函数是我在书上看到的,具体我也不太明白,总之是截取屏幕
 
接受答案了.
 
后退
顶部