当我释放画布时,DC会发生什么?

Joh*_*ica 4 delphi canvas device-context

在这段代码中,我希望有一个调用ReleaseDC发生MyCanvas.Free,但这段代码运行正常,怎么样?
TCanvas自己的DC会发生什么?

var GlobalDC: THandle;

procedure TForm1.FormCreate(Sender: TObject);
begin
   GlobalDC:= GetDC(0);
end;

function LoopMeOften(const X, Y: Integer): TColor;
var
  MyCanvas: TCanvas;
begin
  MyCanvas := TCanvas.Create;
  MyCanvas.Handle := GlobalDC;
  Result := GetPixel(MyCanvas.Handle, X, Y);
  MyCanvas.Free;
end;
Run Code Online (Sandbox Code Playgroud)

Ser*_*yuz 8

TCanvas没有自己的DC,它既不获取也不释放DC.它的后代呢TControlCanvas.

来自TCanvas.Handle Property

TCanvas不拥有HDC.应用程序必须创建HDC并设置Handle属性.当画布不再需要时,应用程序必须释放HDC.