Invalidate を使わずに画面更新するには・・・?

[戻る]
ちびる 2001/10/12(金) 14:50:15
はじめまして。ちびると申します。
VC++6.0を利用しています。

OnTimer内でBitMapを100個のPaintBoxに表示しています。
画面の更新にInvalidateを使用しているのですが、
画面全体がちらついて見えたものではありません。

画面を綺麗に更新する方法を教えてください。

Bun 2001/10/12(金) 15:04:39
はずしているかも知れませんが親ウィンドウのスタイルに

WS_CLIPCHILDREN

を追加してみては?

ちびる 2001/10/12(金) 16:05:42
Bunさん 早速のお返事ありがとうございます。
早速、WS_CLIPCHILDREN を追加してみたのですが
画面の中に穴が空いて見えなくなってしまいました。
使用しているのは、MFC AppWizard でダイアログ形式で
画面を作成しています。
何か方法がありますでしょうか?

Bun 2001/10/12(金) 16:20:57
> 早速、WS_CLIPCHILDREN を追加してみたのですが
> 画面の中に穴が空いて見えなくなってしまいました。

どの関数で、どのように追加されました?

それと、もう少し詳しくどんなことをしているか
教えてもらえませんか?

ちびる 2001/10/12(金) 16:23:51
Bunさん 早速のお返事ありがとうございます。
早速、WS_CLIPCHILDREN を追加してみたのですが
画面の中に穴が空いて見えなくなってしまいました。
使用しているのは、MFC AppWizard でダイアログ形式で
画面を作成しています。
何か方法がありますでしょうか?

Hal 2001/10/12(金) 16:24:07
Halです。
OnTimer()内では、100個のすべての
PaintBoxを更新する必要があるのですか?
更新する必要がないのであれば、目的の
PaintBoxのみ再描画させればよいのでは
ないでしょうか。
それでは。

ちびる 2001/10/15(月) 13:44:01
Halさんのおっしゃる通り100個全てではなく
OnTimer内で1個ずつ更新していきます。
初心者ですみませんが、その1個ずつ更新する
方法が解らないのですが。
RedrawWindow()でPicutureBoxのみを更新する
方法で良いのでしょうか?

Hal 2001/10/15(月) 19:10:32
Halです。
更新したいPictureBoxのコントロールIDは
わかっていますよね。
それがわかっているのであれば、
GetDlgItem(IDC_PICTUREBOX1)->Invalidate();
でも
GetDlgItem(IDC_PICTUREBOX1)->RedrawWindow();
でもどちらでも同様の動きをするのではないでしょうか。
それでは。

ちびる 2001/10/16(火) 09:48:32
[[解決]]
Halさん、Bunさん、ありがとうございました。
ちらつかずに動作するようになりましたが、
まだまだ他の問題が・・・
後は本とかHelpを見ながら頑張って見ます。

古いスレッドには追加発言できません。