Windowの更新について

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Windowの更新について

Windowの更新について

by もうダメ » 2006年9月25日(月) 20:52

 konisi様

 うまくいきました!感激!!
 
 いやぁ、勉強になります。とても助かりました。

 どうも有り難うございました。

by konisi » 2006年9月25日(月) 19:34

別スレッドで動かす という方法があります。

コード: 全て選択

Dim flag As Long
Sub MainWnd_CommandButton1_Click()
	if flag=1 then Exit Sub
	flag=1
	CreateThread(ByVal 0,0,AddressOf(CountUp),0,0,0)
End Sub

Sub CountUp()
	Dim i As Long 
	For i=1 To 10000 
		SetWindowText(GetDlgItem(hMainWnd,Static1),Str$(i))
	Next 
	SetWindowText(GetDlgItem(hMainWnd,Static1),"終了")
	flag=0
End Sub

Windowの更新について

by もうダメ » 2006年9月25日(月) 17:34

 次のような簡単なプログラムをRADツールを使って作ったとします。

Dim i As Long
For i=1 To 10000
   SetWindowText(GetDlgItem(hMainWnd,Static1),Str$(i))
Next
SetWindowText(GetDlgItem(hMainWnd,Static1),"終了")

 これを実行している最中に、一旦他のアプリケーション(例えばエクスプローラ)をアクティブにしたり、このプログラムのウィンドウを移動させたりすると、カウンタの表示が更新されなくなったり、ウィンドウが白くなったりするのを回避する方法はないでしょうか?
 ループが終了すれば、正常なウィンドウに戻ります。

 初心者なので、バカな質問をしているかもしれません。
 UpdateWindowやInvalidateRect, RedrawWindow, Sleep等を試してみましたがダメでした。せっかく作ったカウンタやプログレスバーが意味をなさず困っています。お助け下さい。

ページトップ