VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/03/15(Mon) 21:23
投稿者ねろ
Eメール
URL
タイトルRe^7: タイマー処理中にメニューバーをクリック

プログラムを次のように書き換えて見ました
これで何もしなければ、0.5秒に一回ループを回るはず、

Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Private Sub tmrUpdate_Timer()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim t As Long
    Dim n As Long
    tmrUpdate.Enabled = False
    m_blnCancel = False
  
    For i = 1 To 10
        lblTime.Caption = "Count : " & CStr(i)
        DoEvents
        If m_blnCancel = True Then
            Exit For
        End If
        t = timeGetTime
        Do
            DoEvents
        Loop While (timeGetTime - t < 500)
      
        'For j = 1 To 10000
            'For k = 1 To 2000: Next k
        'Next j
  
      Next i

    lblTime.Caption = ""
    tmrUpdate.Enabled = True

End Sub

そして次のことを発見しました。
タイマーが始まる前又はタイマーとタイマーの間にメニューを選択すると、
メニューをプルダウンしてもタイマーはスターとしてループ表示は続行する、
ただしDoeventsを受け付けない。
タイマー処理中にメニューをプルダウンすると、処理が止まる。
これはしょうだいさんのオリジナルのコードでも同じです。
これはいったい何だろう、今夜は寝れなくなりそう。(^^;


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -