いつも参考にさせていただいてます。
今までにこういう現象を解決できた方とか方法とか
何でもいいので教えていただければ幸いです。
環境は、Windows2000, VC++.NET2003です。
ダイアログベースで画面開発を行っているのですが、
親ダイアログから子ダイアログを呼び出した際
子ダイアログをドラッグすると、子ダイアログの枠の形が
ビットマップ上に残ってしまいます。
ダブルバッファリングなど調べてみたのですが、
ビットマップ自体が更新され再描画されているわけではないので
枠を消すことはできませんでした。
対応策として、他に試したことが
OnPaintでRedrawWidowをかけ続けるなどですが、効果が
ありませんでした。
掲示板に初めて投稿するので、不明瞭な点等あると思いますが、
そういった部分も含めご指摘ください。
よろしくお願いします。
ValidateRectを使用して更新領域から矩形領域を削除してみてはどうですか?
昨日、いろいろ試してみてわかったことがあるのでご報告します。
現在、画面のプロパティ設定を256色にしている状態でビットマップが中間色を
使用しているためこの現象が起きることがわかりました。
画面設定がTrueColorの場合、ダイアログを移動した際に痕跡というか跡は
残りませんでした。また、画面設定が256色でビットマップが256色の場合も
同様にうまくいきました。
しかし、画面設定が256色は固定なので画面設定を変えることはできないのです。
最終手段としては、ビットマップを256色に対応するという
ことなのですができる限り中間色を使いたいという状況です。
以上が調べた結果になります。
>ValidateRectを使用して更新領域から矩形領域を削除してみてはどうですか?
SELNAさん、返信ありがとうございます。
試して、またご報告したいと思います。
アドバイス等試してみたのですが、
結果ビットマップ上に跡が残り、中間色から256色に変更ということに
しました。
残念ながら解決できませんでしたので、
解決のチェックはつけずに投稿します。
ツイート | ![]() |