DeleteObject

API Reference 2007. 10. 17. 10:51

BOOL DeleteObject( HGDIOBJ hObject );


GDI 오브젝트를 삭제하는 함수



메모리를 할당한 후 반드시 해제해야 하는 것과 마찬가지로 GDI 오브젝트도 사용이 끝나면 해제하는 것이 원칙이다. 만약 해제하지 않으면 시스템의 메모리와 리소스를 갉아먹게 될 것이다.


삭제하고자 하는 GDI 오브젝트의 핸들만 인수로 넘겨주면 된다.

단, 이때 주의할 것은 DC 에 현재 선택되어 있는 GDI 오브젝트는 삭제할 수 없다는 점인데 이는 현재 사용되고 있는 객체를 함부로 삭제하도록 내버려 둘 수 없기 때문에 생긴 일종의 안전 규정이다.


그래서 삭제하기 전에 DC 에 선택된 객체를 선택 해제해야 하는데 가장 간단한 방법은 같은 종류의 다른 GDI 오브젝트를 선택하는 것이다.


이런 이유로 OldPen 이라는 핸들을 선언하고 이 핸들에 MyPen 이 선택되기 전의 팬 핸들을 저장해 두고 MyPen 을 삭제하기 전에 OldPen 을 다시 선택하는 것이다.


SelectObject( hdc, OldPen );

DeleteObject( MyPen );


   ==


DeleteObject( SelectObject( hdc, OldPen ) );

Posted by 명혀니
,