ReleaseDCとDeleteDCの違い
ReleaseDCはWindows APIの関数で、デバイスコンテキストオブジェクトと指定されたウィンドウハンドルとの関連付けを解除します。
DeleteDC は Windows API の関数で、デバイスコンテキスト環境 (Device Context) オブジェクトを削除するために使われます。この関数はデバイスコンテキスト環境オブジェクトをメモリから削除します。
違いはそこにあります。
- ReleaseDCはデバイスコンテキスト環境オブジェクトとウィンドウハンドルとの関連付けを解除するだけであり、オブジェクト自体を削除することはありません。解放されるのは関連付けられたリソースであり、オブジェクト自体ではありません。対応する状況は、GetDCまたはGetDCExを呼び出してデバイスコンテキスト環境を取得した後、ReleaseDCを使用して解放する場合です。
- DeleteDCはデバイスコンテキスト環境オブジェクトを完全に削除し、関連するリソースを解放してオブジェクト自身を削除します。対応するケースは、CreateDCまたはCreateCompatibleDCを呼び出してデバイスコンテキスト環境を作成した後、DeleteDCを使用して削除する場合です。
従って、デバイスコンテキスト環境オブジェクトとウィンドウ・ハンドルの関連付けを解除するだけなら ReleaseDC を使用するべきで、デバイスコンテキスト環境オブジェクトを完全に削除したい場合は DeleteDC を使用すべきである。