- ベストアンサー
DeleteObjectについて
環境 WIN98 VC++6.0 MFC にて DeleteObjectについて以下のように”xxx”の位置が異なる2種類の記述を見かけたのですが、どちらも正しいのでしょうか? そうだとするとどう使い分けるのですか? <記述1> CBitmap xxx; 略 xxx.DeleteObject(); <記述2> static HBITMAP xxx; 略 DeleteObject(xxx);
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#5537
回答No.2
少し補足しておくと, CBitmap というのはクラスで,DeleteObject というメンバ関数を持っているので, CBitmap xxx; xxx.DeleteObject(); と書けるのです。 CDC もクラスで,DeleteDC というメンバ関数がありますから, CDC dc; dc.DeleeDC(); と出来ます。 HBITMAP と HDC はクラスじゃないです。
その他の回答 (1)
noname#5537
回答No.1
どちらも正しいです。 使い分けは,xxx が CBitmap 型なら, xxx.DeleteObject(); ですし,xxx が HBITMAP 型なら, DeleteObject(xxx); です。
質問者
お礼
回答ありがとうございます。 そう言うことなのですか。そうすると使い分けは、そう覚えておくしかないのですね。 さらに以下の場合は、これまたこういうものだということでしょうか? <記述3> CDC memDC; 略 memDC.DeleteDC();
お礼
回答ありがとうございます。 分かってるつもりで、似たようで同じでないパターンが 多く混乱してました。 これですっきりしました。