• 締切済み

オーナードローボタンでのバグ

オーナードローボタンでのバグについて質問です。 ボタンの更新(再描画)を何度も繰り返すと、 再描画をしてもうまく表示(再描画)されなくなるのですが、 何が原因なのでしょうか? さらに、ボタンの再描画がうまく行かなくなった後に、 プロパティシートを開くとおかしくなります(ウィンドウの枠しか表示されない)。 ちなみに、ボタンの再描画処理をしないようにしてみた所、 こういう現象はありませんでした。 開発環境 XP Visual Studio 2005 C、C++でWindowsAPIを使用しています。

みんなの回答

  • takupy
  • ベストアンサー率100% (3/3)
回答No.1

こんにちは。 質問の内容がいま一つ分からないのですが、一つ気になったことがありましたのでレスさせてください。 描画し終えた後にリソースの解放をわすれていたりはしませんでしょうか ? 例えば、hDC = ::GetDC( hWnd ) ; でデバイスコンテキストを取得し、使用し終えた後に、::ReleaseDC( hWnd, hDC ) で解放し忘れるという様な感じです。 これを繰り返すと、少しずつ描画がおかしくなったりします。

noname#154655
質問者

お礼

解決しました。 ReleaseDC()での解放し忘れではなかったので、 他の解放し忘れかもしれないと思い調べてみたら、 SelectObject()での解放し忘れでした。 テスト用で作っていてコメントアウトしていたつもりなのですが、 うまくコメントアウト出来てなかったようで、 これを消したら正常になりました。 関数化していて、今までうまく行っている様に見えていたので、 見直しはしていませんでした。 ところで、解放し忘れでこういうことが起こるんですね。

noname#154655
質問者

補足

回答ありがとうございます。 ReleaseDC()での解放は、全てやっています。 他に何か原因が考えられないでしょうか? ところで、「質問の内容がいま一つ分からないのですが~」と 書かれているのですが、どこが分からなかったのでしょうか? 説明不足だったのでしょうか? そうであれば、追加説明します。

関連するQ&A