谁能告诉我如何用directx来抓屏?(详细些),我只能给200分了。我用的是DelphiX(200分)

  • 主题发起人 主题发起人 火凤凰
  • 开始时间 开始时间
讨论一下:
用以下语句实现的效果,和上面提供的基本一样
难道所谓directx下抓屏就是这样?我怎么看都觉得好象是普通抓屏,在directX下显示,

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
var
SourceDC:integer;
mPos:TPoint;
begin
GetCursorPos(mPos);
//SourceDC:=CreateDC('DISPLAY','','',nil);
SourceDC:=GetDc(0);
BitBlt(Form1.Canvas.Handle,
0, 0,
400, 300,
SourceDC,
mPos.x , mPos.y,
SRCCOPY);
end;
 
绝对不一样的. 首先用directx抓到的图直接显示的话,是颠倒过来的. ;)

这种bitblt 其实是一种兼容性的函数.它把directdraw Surface转换成GDI兼容的DC. 这样就可以textOut了.
不过这种转换是directx实现的.速度很快的.
 
派分了,虽然答案不是我想象中那样
 
多人接受答案了。
 
to,火凤凰:给否把您修改后的程序发给小弟看一下吗(最好连同DelhpiX控件一同)?

谢谢了~
 
后退
顶部