- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用的屏幕拷贝程序的设计
实用的Delphi屏幕拷贝程序的设计宁波市游河巷贾学杰Borland 公司(现改名为INPRISE公司)的DELPHI是当前最为方便的Windows 程序设计工具之。许多人以为DELPHI是作为数据库开发工具出现的,其实用DELPHI可以以极快的速度开发出高效的Windows程序。现在我们就用DELPHI来编写个实用的屏幕拷贝程序。瞧瞧,下面的画面就是所编程序运行后进行区域屏幕拷贝的例子,还不错吧!Borland公司的天才设计师们用画布(Tcanvas)对象封装了Windows的大部分图形输出功能,这使得我们可以通过他以更直观的方式和JWindows的屏幕打交道,而不必关心令人头疼的WindowsAPI 函数。下面的小段程序就可以实现整个屏幕的图象拷贝了。var//变量声明Fullscreen:TbitmapFullscreenCanvas:TCanvas; dc:HDC://DC二GetDC(0)://取得屏幕的DC,参数。指的是屏幕FullscreenCanvas二TCanvas,Create://创建个CANVAS对象FullscreenCanvas.Ha旺ldle二DC://将屏幕的DC赋给出NDLEFullscreen.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预先定义的屏幕对象,直接使用就行了。看了以上代码,你就会发现用DELPHI写屏幕拷贝程序的确很简单。当然要写个实用的屏幕拷贝程序,光靠上述代码是不够的,下面讲下主要的编程思路:1.全屏幕拷贝的实现首先隐藏拷屏程序,延长定时间后,利用上述的程序即可实现屏幕的拷贝。2.区域拷贝的实现要实现区域拷贝要用个小技巧,首先调用全屏幕拷贝程序把整个屏幕拷贝下来,然后把拷贝下来的图象显示在屏幕上,之后就可以让用户在上面选择需要的区域,最后才将用户选定的区域复制下来。编程实现:1.首先用DELPHI3开个工程。2. 在FORM上放置一个TPANEL元件,设置ALIGN二ALTOP,再选部件条ADDITIONAL 上的TSCROLLBOX,放到FORM上,设置ALIGN二ALCLIENT,然后在SCROLLBOX上放置个TIMAGE 对象。3. 在PANEL上放置4个按钮,分别为FULLSCREEN,REGIN,SAVE,EXIT。4. 容易干的先干,在EXIT按钮的CLICK事件里写下代码procedureTForml. ExitClick(Sender: TObject):beginclose;end;5. 接着是实现全屏幕拷贝了,在FROM上放置个记时器TTIMER,ENABLED 设为FALSE,INTERVAL 设为500,也就是半秒钟激活一次。双击TIMER部件,写上如下的代码。procedureTForml. TimerlTimer(Sender: TObject);varFullscreen:Tbitmap; FullscreenCanvas:TCanvasdc:HDCbegintimerl.Enabled二false://取消时钟Fullscreen二TBitmap.Create://创建一个BITMAP来存放图象Fullscreen.Width二screen.width; Fullscreen.Height二screen.HeightDC二GetDC(0)://取得屏幕的DC,参数。指的是屏幕FullscreenCanvas二TCanvas.Create://创建个CANVAS对象FullscreenCanvas.Handle二DC: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)://释放DCend;//树林对C忡忡忡忡忡刷刷刷**:忡忡忡忡水imagel.picture.Bitmap二fullscreen;//拷贝下的图象赋给IMAGE对象imagel.Width二fullscreen.Widthimagel.Height二fullscreen.Heightfullscreen.free
文档评论(0)