締切り済みの質問
オーナードローボタンでのバグについて質問です。
ボタンの更新(再描画)を何度も繰り返すと、
再描画をしてもうまく表示(再描画)されなくなるのですが、
何が原因なのでしょうか?
さらに、ボタンの再描画がうまく行かなくなった後に、
プロパティシートを開くとおかしくなります(ウィンドウの枠しか表示されない)。
ちなみに、ボタンの再描画処理をしないようにしてみた所、
こういう現象はありませんでした。
開発環境
XP
Visual Studio 2005
C、C++でWindowsAPIを使用しています。
投稿日時 - 2009-07-15 18:38:56
0人が「このQ&Aが役に立った」と投票しています
回答(1件中 1~1件目)
こんにちは。
質問の内容がいま一つ分からないのですが、一つ気になったことがありましたのでレスさせてください。
描画し終えた後にリソースの解放をわすれていたりはしませんでしょうか ? 例えば、hDC = ::GetDC( hWnd ) ; でデバイスコンテキストを取得し、使用し終えた後に、::ReleaseDC( hWnd, hDC ) で解放し忘れるという様な感じです。
これを繰り返すと、少しずつ描画がおかしくなったりします。
投稿日時 - 2009-07-15 19:51:20
補足
回答ありがとうございます。
ReleaseDC()での解放は、全てやっています。
他に何か原因が考えられないでしょうか?
ところで、「質問の内容がいま一つ分からないのですが~」と
書かれているのですが、どこが分からなかったのでしょうか?
説明不足だったのでしょうか?
そうであれば、追加説明します。
投稿日時 - 2009-07-15 22:14:16
お礼
解決しました。
ReleaseDC()での解放し忘れではなかったので、
他の解放し忘れかもしれないと思い調べてみたら、
SelectObject()での解放し忘れでした。
テスト用で作っていてコメントアウトしていたつもりなのですが、
うまくコメントアウト出来てなかったようで、
これを消したら正常になりました。
関数化していて、今までうまく行っている様に見えていたので、
見直しはしていませんでした。
ところで、解放し忘れでこういうことが起こるんですね。
投稿日時 - 2009-07-15 23:09:24