同じHBITMAPの変数に次々に画像をロードして表示することはできますか

[戻る]
TKO 2009/12/04(金) 17:04:14
現在デスクトップを読み込み
ファイルをbitmapファイルを作成し
LoadImage関数をつかって
HBITMAP Desktopという変数に入れて

StretchBltという
画像の範囲を拡大、縮小して表示させる関数を使って表示させているのですが

はじめはデスクトップを読み込んで表示することが出できるのですが
5回ほどデスクトップを読み込んで表示させると
Desktopの中身がNULLになり表示できなくなります

これは同じHBITMAP Desktop変数に何度も上書きできないということですか??

aetos 2009/12/04(金) 17:23:39
使い終わったら削除していますか?
読み込んで表示して、削除しないで次のを読み込むと、どんどんメモリを圧迫して、つ
いにはロードできなくなります。
使わないビットマップは DeleteObject で削除しましょう。

TKO 2009/12/05(土) 00:12:20
DeleteObject で削除するとDesktopという変数が使えなくて
新たに上書きできなくなると思っていたので

次々に同じ変数に読み込んで上書きさせようと思ったのですが
DeleteObjectで削除しても
新たにその変数にビットマップを読み込むことができるということですか??

wclrp ( 'o') 2009/12/05(土) 01:12:08
DeleteObject(Desktop);

このときDesktop変数に格納されているビットマップを削除するのであって
Desktop変数そのものを使えなくさせることなんてできないよ。
そんなことができるAPIはないから気にすんな。

TKO 2009/12/05(土) 17:31:21
[[解決]]
DeleteObject(Desktop);で
できました

ありがとうございます

古いスレッドには追加発言できません。