Invalidate を使わずに画面更新するには・・・? – プログラミング – Home

Invalidate を使わずに画面更...
 
通知
すべてクリア

[解決済] Invalidate を使わずに画面更新するには・・・?


ちびる
 ちびる
(@ちびる)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

はじめまして。ちびると申します。
VC++6.0を利用しています。

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

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


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

はずしているかも知れませんが親ウィンドウのスタイルに

WS_CLIPCHILDREN

を追加してみては?


返信引用
ちびる
 ちびる
(@ちびる)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

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


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

> 早速、WS_CLIPCHILDREN を追加してみたのですが
> 画面の中に穴が空いて見えなくなってしまいました。

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

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


返信引用
ちびる
 ちびる
(@ちびる)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

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


返信引用
Hal
 Hal
(@Hal)
ゲスト
結合: 25年前
投稿: 67
 

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


返信引用
ちびる
 ちびる
(@ちびる)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

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


返信引用
Hal
 Hal
(@Hal)
ゲスト
結合: 25年前
投稿: 67
 

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


返信引用
ちびる
 ちびる
(@ちびる)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

Halさん、Bunさん、ありがとうございました。
ちらつかずに動作するようになりましたが、
まだまだ他の問題が・・・
後は本とかHelpを見ながら頑張って見ます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました