【发布时间】:2014-10-25 12:09:08
【问题描述】:
我想创建一个TCanvas,以便更轻松地绘制。首先我创建了画布MyCanvas:=TCanvas.Create;,然后我得到了句柄DC:=GetWindowDC(Handle);,现在我应该怎么做...?我应该直接将新句柄分配给画布MyCanvas.Handle:=DC;,还是应该首先销毁现有的MyCanvas.Handle?在我画完之后我必须释放手柄ReleaseDC(Handle,DC);或者如果我释放画布MyCanvas.Free,手柄会自动释放?
【问题讨论】:
-
如有疑问,请查看
HandleAllocated属性。TCanvas是抽象类,它不拥有 DC 句柄,所以是的,你必须ReleaseDC清理。 -
您可以使用
TControlCanvas类,它将为您获取和释放 DC。顾名思义,它的目的是使用内部控件。 -
就像 TLama 说的,我会使用 TControlCanvas。