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

締切り済みの質問

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

オーナードローボタンでのバグについて質問です。

ボタンの更新(再描画)を何度も繰り返すと、
再描画をしてもうまく表示(再描画)されなくなるのですが、
何が原因なのでしょうか?

さらに、ボタンの再描画がうまく行かなくなった後に、
プロパティシートを開くとおかしくなります(ウィンドウの枠しか表示されない)。
ちなみに、ボタンの再描画処理をしないようにしてみた所、
こういう現象はありませんでした。

開発環境
XP
Visual Studio 2005
C、C++でWindowsAPIを使用しています。

投稿日時 - 2009-07-15 18:38:56

連想キーワード:

QNo.5128075

困ってます

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(1件中 1~1件目)

ANo.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

あわせてチェックしたい
  • Visual Studioのローカルウィンドウについて ...
  • visual studioについて ...
  • Visual Studio 2010Proについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら