首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

getdc失去句柄以后截图为什么一直是桌面的截图

2013-01-09 
getdc得到句柄以后截图为什么一直是桌面的截图getdc得到句柄以后截图为什么一直是桌面的截图我希望可以后

getdc得到句柄以后截图为什么一直是桌面的截图
getdc得到句柄以后截图为什么一直是桌面的截图
我希望可以后台通过句柄的范围截图 
为什么不管 dc:=getdc 还是 dc:=getwindowDc  一直截图 都是 截图桌面 而不是控件的句柄的范围截图呢 
难道是句柄抓取的不对? 但是我尝试 form1.handle 或者 form1.webbrowser.handle 一直也是截取桌面的图片

求解答 感谢  感谢 

var
  bmpscreen:Tbitmap;
  jpegscreen:Tjpegimage;
  FullscreenCanvas:TCanvas;
  dc:HDC;
  sourceRect, destRect: TRect;
begin
  try
  //dc:=///GetWindow(GetWindow(form1.WebBrowser1.Handle,   GW_CHILD),   GW_CHILD);
  dc:=GetWindowDC(form1.Handle);
  //dc:=getdc(getdc(GetWindow(GetWindow(form1.WebBrowser1.Handle,   GW_CHILD),   GW_CHILD)));
 // dc:=getdc(form1.webbrowser1.Handle);
  ///showmessage(inttostr(dc)) ;
  fullscreencanvas:=Tcanvas.Create;
  fullscreencanvas.Handle:=dc;
  bmpscreen:=Tbitmap.create;
  bmpscreen.Width :=c-a;
  bmpscreen.Height :=d-b;
  sourcerect:=rect(0,0,c-a ,d-b );
  destrect:= rect(a,b,c,d);
  bmpscreen.Canvas.CopyRect(sourcerect,fullscreenCanvas,destrect);
  jpegscreen:=Tjpegimage.Create ;
  jpegscreen.Assign (bmpscreen);
  jpegscreen.CompressionQuality:=100;
  //jpegscreen.SaveToFile(pchar('c:\'+swj));
  jpegscreen.SaveToFile(pchar(ExtractFilePath(ParamStr(0))+swj));
  FullscreenCanvas.Free;
  bmpscreen.Free;
  jpegscreen.Free ;
  ReleaseDC(0, DC);
  except
  end;
end;
[解决办法]
一个截图程序的完整代码你要不要?
       要的话找我
[解决办法]
另外句柄为0就是桌面,对于其它程序应该是要窗体句柄,让后根据窗体设置坐标;似乎不能具体到控件(这个我也没刻意试过)。

热点排行