はじめまして。ちびると申します。
VC++6.0を利用しています。
OnTimer内でBitMapを100個のPaintBoxに表示しています。
画面の更新にInvalidateを使用しているのですが、
画面全体がちらついて見えたものではありません。
画面を綺麗に更新する方法を教えてください。
はずしているかも知れませんが親ウィンドウのスタイルに
WS_CLIPCHILDREN
を追加してみては?
Bunさん 早速のお返事ありがとうございます。
早速、WS_CLIPCHILDREN を追加してみたのですが
画面の中に穴が空いて見えなくなってしまいました。
使用しているのは、MFC AppWizard でダイアログ形式で
画面を作成しています。
何か方法がありますでしょうか?
> 早速、WS_CLIPCHILDREN を追加してみたのですが
> 画面の中に穴が空いて見えなくなってしまいました。
どの関数で、どのように追加されました?
それと、もう少し詳しくどんなことをしているか
教えてもらえませんか?
Bunさん 早速のお返事ありがとうございます。
早速、WS_CLIPCHILDREN を追加してみたのですが
画面の中に穴が空いて見えなくなってしまいました。
使用しているのは、MFC AppWizard でダイアログ形式で
画面を作成しています。
何か方法がありますでしょうか?
Halです。
OnTimer()内では、100個のすべての
PaintBoxを更新する必要があるのですか?
更新する必要がないのであれば、目的の
PaintBoxのみ再描画させればよいのでは
ないでしょうか。
それでは。
Halさんのおっしゃる通り100個全てではなく
OnTimer内で1個ずつ更新していきます。
初心者ですみませんが、その1個ずつ更新する
方法が解らないのですが。
RedrawWindow()でPicutureBoxのみを更新する
方法で良いのでしょうか?
Halです。
更新したいPictureBoxのコントロールIDは
わかっていますよね。
それがわかっているのであれば、
GetDlgItem(IDC_PICTUREBOX1)->Invalidate();
でも
GetDlgItem(IDC_PICTUREBOX1)->RedrawWindow();
でもどちらでも同様の動きをするのではないでしょうか。
それでは。
Halさん、Bunさん、ありがとうございました。
ちらつかずに動作するようになりましたが、
まだまだ他の問題が・・・
後は本とかHelpを見ながら頑張って見ます。