• ベストアンサー

DeleteObjectについて

環境 WIN98 VC++6.0 MFC にて DeleteObjectについて以下のように”xxx”の位置が異なる2種類の記述を見かけたのですが、どちらも正しいのでしょうか? そうだとするとどう使い分けるのですか? <記述1> CBitmap xxx; 略 xxx.DeleteObject(); <記述2> static HBITMAP xxx; 略 DeleteObject(xxx);

質問者が選んだベストアンサー

  • ベストアンサー
noname#5537
noname#5537
回答No.2

少し補足しておくと, CBitmap というのはクラスで,DeleteObject というメンバ関数を持っているので, CBitmap xxx; xxx.DeleteObject(); と書けるのです。 CDC もクラスで,DeleteDC というメンバ関数がありますから, CDC dc; dc.DeleeDC(); と出来ます。 HBITMAP と HDC はクラスじゃないです。

VitaminBB
質問者

お礼

回答ありがとうございます。 分かってるつもりで、似たようで同じでないパターンが 多く混乱してました。 これですっきりしました。

その他の回答 (1)

noname#5537
noname#5537
回答No.1

どちらも正しいです。 使い分けは,xxx が CBitmap 型なら,  xxx.DeleteObject(); ですし,xxx が HBITMAP 型なら,  DeleteObject(xxx); です。

VitaminBB
質問者

お礼

回答ありがとうございます。 そう言うことなのですか。そうすると使い分けは、そう覚えておくしかないのですね。 さらに以下の場合は、これまたこういうものだということでしょうか? <記述3> CDC memDC; 略 memDC.DeleteDC();

関連するQ&A