実行を続けていると画面表示がおかしくなるのですが

[戻る]
miya 2007/01/17(水) 15:49:31
はじめまして、初めて質問させていただきます。

項目を選び、数字を入力したらそれぞれの項目に応じた演算結果を表示するというプログ
ラムを作っています。
演算内容も完成して一応プログラムは動くようになったのですが、何回も演算させている
と画面表示がおかしくなるバグが見つかりました。

バグの内容は

・WM_PAINTで表示していた部分が白くなる
・フォントの大きさがおかしくなる
・WM_CTLCOLOREDITの変更が無視される

等です

ソースの怪しいところを消す→実行という方法で怪しい箇所を探してみたのですが、どう
もSetWindowTextを何回も行うとバグが起こるようなのですが、何故そうなるのか理由が
わかりません。どなたかこういうバグに心当たりのある方はいらっしゃらないでしょう
か?

環境
MFC Appwizard(exe)
windowsXP Pro
vc++6.0

よろしくお願いします。

シャノン 2007/01/17(水) 16:02:18
GDIオブジェクト(ペンとかブラシとかビットマップとかDCとか)を、作るだけ作って、
使い終わっても削除してないところがないかどうか見直してください。

miya 2007/01/17(水) 16:30:48
[[解決]]
ブラシのオブジェクトを消していないところを見つけたので、そこを直したら解決しまし
た。
どうもありがとうございました。

フォントを消していないところもいくつか見つけたのですがこちらは消さなくてもちゃん
と動くようです、これは消さなくても良いんでしょうか・・・?

とおりすがり 2007/01/17(水) 17:08:15
メモリをどんどんリークしていると思うけど。
タスクマネージャから確認できるはず

ITO 2007/01/17(水) 19:13:06
>フォントを消していないところもいくつか見つけたのですがこちらは消さなくても
>ちゃんと動くようです、これは消さなくても良いんでしょうか・・・?
そのまま動かし続けると、他のウインドウのフォントがおかしくなり、
最後には「リソースが不足しています。」だったかな?のメッセージが表示され
再起動を要求されます。
表示の頻度も関わってくると思いますが、消さなくていいとは思いません。

miya 2007/01/18(木) 10:10:36
やっぱり消した方が良いんですね、ありがとうございました。

みなさんに言われたとおりにDeleteObjectを使って消したんですけど、コントロールの背
景とFontの変更が行われなくなってしまいました。
また、別のスレッドで質問させていただきたいと思います。
ありがとうございました。

追伸:環境にMFCと書いてしまいましたがSDKの間違いでした、申し訳ありません。

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