gpt4 book ai didi

delphi - 当你拥有句柄时如何创建和释放 TCanvas?

转载 作者:行者123 更新时间:2023-12-03 15:28:46 31 4
gpt4 key购买 nike

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

最佳答案

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

来自docs :

TCanvas does not own the HDC. Applications must create an HDC and set the Handle property. Applications must release the HDC when the canvas no longer needs it. Setting the Handle property of a canvas that already has a valid HDC will not automatically release the initial HDC.

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

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com