哪位高手能帮忙解释一下一个小疑点

谁能帮忙解释一下一个小问题
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);
var
  fullscreen:TBitmap;
  fullscreencanvas:TCanvas;
  dc:HDC;//
begin
  fullscreen:=TBitmap.Create;
  fullscreen.Width:=Screen.Width;
  fullscreen.Height:=Screen.Height;
  dc:=GetDC(0);
  fullscreencanvas:=TCanvas.Create;
  fullscreencanvas.Handle:=dc;
  fullscreen.Canvas.CopyRect(Rect(0,0,Screen.Width,Screen.Height),fullscreencanvas,Rect(0,0,Screen.Width,Screen.Height));
  ReleaseDC(0,dc);
  image1.Picture.Bitmap:=fullscreen;
end;


以上程序很简单就是将当前windows屏幕复制到image上 但是有几个地方不明白
分别是
  dc:HDC;
dc:=GetDC(0);
fullscreencanvas.Handle:=dc;
ReleaseDC(0,dc);

以上这些操作应该是跟句柄有关 为什么必须这么做 如果取消掉上面这些操作 会怎样?

------解决方案--------------------
首先要得到你所要操作设备的上下文信息,然后取出其中的画布信息,然后进行画布操作。最后释放掉这个设备上下文即可。

你不这样操作,你的程序就不知道你想从那个画布进行复制,也就不知道是哪个设备或者程序的画布了。
所以,必须有上面几步……
------解决方案--------------------
dc:=GetDC(0);//这是取得桌面显示设备句柄
fullscreencanvas.Handle:=dc;//将画布的Handle设置为dc
ReleaseDC(0,dc);//释放桌面设备句柄