
MFCでプログラミングをしています。
SDIプログラムで、
メニューを選択すると「ある操作」をするように
作っています。
「ある操作」の中でループを回しており、
各ループ終了毎に更新結果を逐次描画させたいのですが、
うまく行きません。
ループの最後に
Invalidate(TRUE)
を書いてだめだったので、
pView->SetRedraw(TRUE);
pView->RedrawWindow();
pDoc->UpdateAllViews(NULL);
なども併用してみたのですが、
通過するだけで何もされません。
どなたかご教示よろしくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示

No.5
- 回答日時:
InvalidateRect(0,0,false); //画面全体に再描画を要求
似たようなプログラムを作っていたところです
HWNDを指定するところに0を渡しています
0はデスクトップ自体のHWNDを示しているので。
これで全てのウィンドウが再描画を開始します。
実証済みです
参考URL:http://www.ne.jp/asahi/nagoya/ahomaro/builder/cp …
No.4
- 回答日時:
これはもしかすると、コマンドハンドラの中にループ処理がかかれているのではないでしょうか。
その場合、コマンドハンドラから抜けなければ Invalidate(TRUE) が発行した再描画メッセージを処理するチャンスがやってきません。
定期的にコマンドハンドラからメッセージループに処理を戻してやるか、別スレッドを作成すると簡単になります。 ユーザー インターフェイス スレッド を検索してみてください。
No.3
- 回答日時:
性懲りも無くまた来ました。
API32では強制全画面アップデートを掛けたい場合、
以下の呪文?を唱えます。
hWnd = 該当ウィンドウのウィンドウハンドル
InvalidateRect( hWnd, NULL, FALSE );
UpdateWindow( hWnd );
多少のヒントになれば...
#実は全く意図と違っていたりして...m(_"_;m
No.1
- 回答日時:
MFCのクラスだとどうやるのかな...
C(API及びAPI32)の場合では、Redraw用のレクトアングル情報を与え直してからUpdateするようにしていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
MFCでOnPaintのタイミング
C言語・C++・C#
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
-
4
InvalidateRectの使い方について
C言語・C++・C#
-
5
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
6
CEdit の内容が変わった時にメッセージを表示させたい
C言語・C++・C#
-
7
エディットボックスのフォントを変えたい
C言語・C++・C#
-
8
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
9
CString から LPCTSTRの型に変換
C言語・C++・C#
-
10
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
11
CString型の文字列連結について
C言語・C++・C#
-
12
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
13
作成したウインドウのサイズを固定するには?
C言語・C++・C#
-
14
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
15
ラベル(スタティックテキスト)内での改行。
C言語・C++・C#
-
16
MFCでハンドルを取得するには
C言語・C++・C#
-
17
ビジュアルC++でボタンの有効/無効
C言語・C++・C#
-
18
C# 超初心者です。 this.Refresh();という文を使いたいです
C言語・C++・C#
-
19
エディットコントロールでEnter押した時の動作
C言語・C++・C#
-
20
MFC ダイアログ上のID取得について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
null 参照の例外が実行時に発生...
-
VBAで3秒だけ時間を止めたい
-
WinAPI「MsgWaitForMultipleObj...
-
VB.NETでFTPプログラム
-
ListBox 複数選択 で オートフ...
-
ループを回すという意味は何で...
-
ループ内での条件処理
-
EXCEL VBA(初心者)印刷ルー...
-
エディットボックスのテキスト...
-
Do whileでExitせず、ループの...
-
プログラミングで難しいと感じ...
-
流れ図(フローチャート)が分か...
-
VBのReturnの使い方
-
まったく同じファイルのハッシ...
-
MATLABの関数で配列の要素を返...
-
短いハッシュの作り方
-
Perlでハッシュや配列で重複す...
-
明示的なオブジェクトの削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
VBAでの一時停止と再開の方法
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
イベントの発生を待つ
-
流れ図(フローチャート)が分か...
-
UWSCに制限時間を付けたいです
-
vb.netです。2次元配列の要素を...
-
VBA for i=1 to lastrow
-
DoEventsが必要な理由について
-
ループフリー
-
VBA Boxが空白の場合のメッセー...
-
VBA ニュースタイトル取得
-
エクセルの当番表を作っていま...
-
Javaの質問です。 この問題の答...
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
おすすめ情報