我想创建一个 TCanvas 以便我可以更轻松地绘制。首先我创建 Canvas MyCanvas:=TCanvas.Create; ,然后我得到句柄 DC:=GetWindowDC(Handle); ,现在我应该怎么做...?我应该直接将新句柄分配给 Canvas MyCanvas.Handle:=DC; 还是应该先销毁现有的 MyCanvas.Handle ?完成绘图后,我必须释放句柄 ReleaseDC(Handle,DC); 或者如果我释放 Canvas MyCanvas.Free ,句柄将自动释放?

最佳答案

当您创建 TCanvas 时,它​​没有句柄。使用 GetWindowDC 返回的 DC 分配句柄。当您销毁 Canvas 时,句柄不会被销毁。您需要显式调用 ReleaseDC

docs :

关于delphi - 当您拥有句柄时,如何创建和释放 TCanvas?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26562196/

10-13 06:23