我有一个皮肤组件,它绘制了一个ComboBox,如下所示:
procedure TBaseComboBox.DrawBorders;
var
DC: HDC;
begin
DC := GetWindowDC(Handle);
try
DrawControlBorder(DC);
if Style <> csSimple then
DrawButtonBorder(DC);
finally
ReleaseDC(DC, Handle);
end;
end;
我的问题是,在运行ReleaseDC时,组件不会被销毁。我设法使用程序GDIView 1.6
得出了这个结论我应该怎么做才能破坏这个变量。
答案 0 :(得分:5)
ReleaseDC()
来电中的参数是倒退的。阅读documentation。第一个参数必须是HWND
来自的HDC
,第二个参数必须是HDC
本身:
//ReleaseDC(DC, Handle);
ReleaseDC(Handle, DC);