对某一个控件进行截图时,如果才能只截下控件本身的形状,而不包括遮在它上方的其它程序的窗体图像呢?(100分)

  • 主题发起人 主题发起人 dedema
  • 开始时间 开始时间
D

dedema

Unregistered / Unconfirmed
GUEST, unregistred user!
bmp:=tbitmap.Create;
bmp.Width :=tabsheet2.Width ;
bmp.Height :=tabsheet2.height ;
dc:=getdc(tabsheet2.handle);
bitblt(bmp.Canvas.Handle ,0,0,bmp.Width ,bmp.Height ,
dc, 0,0,srccopy);
bmp.SaveToFile ('bbb.bmp');
releasedc (tabsheet2.handle,dc);
bmp.free;
以上这个程序可以对tabsheet2上的所拥有的所有控件截下图来,保存到图像bbb.bmp上,
但如果这时有其它程序,比如金山词霸正在运行并在这个控件的上方显示出某个词的翻
译语句时,截下来的图像就会包括词霸的翻译语句。那对这段程序怎么改,才可以得到
tabsheet2这个控件的本来面目,而不包括其它程序的东东呢?
 
我非常遗憾的告诉你那时不可能的
任何一个窗口被覆盖以后都回重画,
而在他上面的窗口会把他一部分或全部覆盖,所以它根本就不存在所以也就无法得到!
 
是有这个情况,就是在拷贝的过程中,不能有干扰。
我当时是要截一个窗口的一个区域,为了排除干扰,我让这个窗口在拷贝的时候重新建了一次,
然后紧接着把窗口释放掉。

 
无可奈何,只好这样了!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部