Last Updated 2004/03/30 |
Programming Tips Visual C++ MFC GDI | 索 引 |
GDIオブジェクト
2004/03/30
GDI オブジェクトは作成したら削除しなければならない.
これが定形な処理である. では,ペンを2度選択する場合はどうするのか?
2回目の SelectObject() で元のペンを確保する必要はない. (逆に,同関数内で元の状態を確保してはいけない) 1度元の状態を格納してしまえばあとは何度 SelectObject() を行っても問題はない. GDI オブジェクトは作成したら削除しなければならない.しかし SelectObject() したままでは削除できないので,前の状態に戻してから削除するのである. CreateObject() したものは DeleteObject() しなければならないが,コンストラクタにて暗黙に CreaateObject() されたものは削除する必要はない(削除してもかまわない) デストラクタにて暗黙に DeleteObject() されるからである. SelectObject() にて元の状態に戻さないとどうなるか? DeleteObject() が失敗する.Windows95 系では TRUE が返るが実際にはプロセス終了まで迷子なオブジェクトとなる. Windows3.1 や WindowsNT などでは FALSE が返る. 参照 |
|