截取屏幕图像(100分)

  • 主题发起人 主题发起人 刘青
  • 开始时间 开始时间

刘青

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:如何获得当前的屏幕图像,能不能读取为Tcanvas?
 
用 画 布(Tcanvas)
对 象 封 装 了Windows 的 大 部 分 图 形
输 出 功 能, 这 使 得 我 们 可 以 通 过 他 以 更 直 观 的
方 式 和Windows 的 屏 幕 打 交 道,
而 不 必 关 心 令 人 头 疼 的Windows API 函 数。 下 面 的
一 小 段 程 序 就 可 以 实 现 整 个
屏 幕 的 图 象 拷 贝 了。
var //变量声明
Fullscreen:Tbitmap;
FullscreenCanvas:TCanvas;
dc:HDC;
//-------------------------------------------------------
-----
DC := GetDC (0); //取得屏幕的 DC,参数0指的是屏幕
FullscreenCanvas := TCanvas.Create; //创建一个CANVAS对

FullscreenCanvas.Handle := DC; //将屏幕的DC赋给
HANDLE
Fullscreen.Canvas.CopyRect
(Rect (0, 0, screen.Width,screen.Height),
fullscreenCanvas,
Rect (0, 0, Screen.Width, Screen.Height));
//把整个屏幕复制到BITMAP中
FullscreenCanvas.Free; //释放CANVAS对象
ReleaseDC (0, DC); //释放DC
//SCREEN对象是DELPHI预先定义的屏幕对象,直接使用就行了。
 
来晚一步!
 

来迟也
 
to 张剑波:
>> Rect (0, 0, Screen.Width, Screen.Height));
>> //把整个屏幕复制到BITMAP中
该Bitmap是否必须同截取的屏幕一样大,能否按比例缩小显示
 
就是 张剑波 的那种方法,哎,的确,来迟了,不然,呵呵,老弟,你的这100分就在我囊中了.
随便告诉你秘密,其实这个问题在大富翁里是可以检索到的,也就是,你原来没有必要
花费着100分.下次聪明点,先检索在提问题:-P
 
后退
顶部