这是一个 Visual Studio Express C++ Windows 窗体应用程序。
从按下“开始”按钮到按下“停止”按钮的时间,我想每 10 秒在 WAV 播放 wavPlayer 中播放 WAV 文件 strFileName.WAV。
当每 10 秒间隔结束时,TimerEventProcessor 播放 WAV 文件。
问题是我必须按两次“停止”才能让它工作。“停止”的第一次按下似乎被忽略了。
为什么第一次按“停止”时 btnStop_Click 没有执行?
private: System::Void bntStart_Click(System::Object^ sender, System::EventArgs^ e) {
if (String::IsNullOrEmpty(strFileName)) {
lblRunning->Text = L"Cannot Start Until File Is Loaded";
}
else {
lblRunning->Text = L"Running";
myTimer->Interval = iIntervalSeconds * 1000;
myTimer->Tick += gcnew EventHandler( TimerEventProcessor );
myTimer->Enabled = true;
while (lblRunning->Text == L"Running") {
Application::DoEvents();
}
}
}
private: System::Void btnStop_Click(System::Object^ sender, System::EventArgs^ e) {
lblRunning->Text = L"Stopped";
myTimer->Enabled = false;
wavPlayer->Stop();
}