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

投稿日: 2004/03/15(Mon) 09:45
投稿者しょうだい
Eメール
URL
タイトルRe^4: タイマー処理中にメニューバーをクリック

アドバイスありがとうございます。

> >実際のプログラムでは、DoEventsの実行は数回なんですが
> この意味が今ひとつ理解できません。

すみません、具体例が適切ではなかったかもしれません。
少々変更させて頂きます。
以下のソースのタイマー処理中(ラベルのカウント表示中)に
メニューバーの「ファイル」をクリックし、サブメニューを
表示させた状態の時にタイマー処理が中断してしまいます。
(ラベルのカウント表示が更新されません。)

(具体例)
 ・フォームにラベルとボタンとタイマーコントロールを配置。
 ・メニューバーに「ファイル」及びそのサブメニューに「閉じる」を設定。

Private m_blnCancel As Boolean

Private Sub cmdCancel_Click()
    m_blnCancel = True
End Sub

Private Sub Form_Load()
    m_blnCancel = False
    tmrUpdate.Interval = 5000
    tmrUpdate.Enabled = True
End Sub

Private Sub tmrUpdate_Timer()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    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
        For j = 1 To 10000 
            For k = 1 To 2000: Next k
        Next j
    Next i
    lblTime.Caption = ""
    tmrUpdate.Enabled = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

(開発環境)
 Visual Basic 6.0 (SP5)
 OS : Windows2000 Professional (SP4)
  CPU: Celeron 1.70GHz


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

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

- Web Forum -