65.9K
CodeProject 正在变化。 阅读更多。
Home

乘法表练习工具

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (6投票s)

2008年12月25日

BSD

3分钟阅读

viewsIcon

65044

downloadIcon

3403

一个适合儿童练习乘法表的程序;是将 Windows Media Player 控件嵌入应用程序的一个很好的例子。

引言

我有两个学龄儿童,他们都在学习和/或练习乘法表。我编写了这个程序来帮助他们以一种有趣的方式练习乘法表,并根据需要专注于特定的表。为了让它更有趣,我希望它在后台播放音乐,并根据正确或错误的回答提供良好的 A/V 反馈。我发现了很多可以做到这一点的应用程序,但通常,它们是需要购买的或基于 Web 的应用程序。我想要一些可定制的,并且可以本地运行,而无需担心浏览器或互联网连接。我还希望有一个应用程序可以在练习时轻松地从数字小键盘运行——这些尤其重要,因为目标受众是年幼的孩子。

背景

我从未尝试在应用程序中加入背景音乐,所以我尝试了几种选择。最后,我选择了将 Windows Media Player 控件嵌入到应用程序中(请参阅下面的 嵌入 Windows Media Player 部分以了解如何操作)。它很灵活,并且原生支持各种音乐格式。

使用 Windows Media Player 控件

Windows Media Player 控件的实际文档可以在 MSDN 上找到。我将重点介绍我在这个简单应用程序中需要的属性。

媒体播放器控件有一个 settings 属性,允许访问几个播放属性(例如,自动启动、播放次数和音量)。以下代码显示了如何应用这些属性

' We just use Windows Media Player to play background music
With MediaPlayer
    With .settings
        .autoStart = False
        .playCount = Integer.MaxValue
        .volume = 10
    End With

    .URL = Application.StartupPath & "\Audio\BackgroundJam.wma"
End With

请注意,我只是将播放计数设置为最大整数值,以有效地为音乐创建一个无限播放循环。音量设置为 10,对于背景音乐来说很不错并且足够低 - 但又不会太分散注意力。

要播放和暂停音乐,您可以按如下方式访问 Ctlcontrols 属性

Private Sub StartBackgroundMusic()

    If m_backgroundMusicEnabled Then
        With MediaPlayer.Ctlcontrols
            .currentPosition = 0
            .play()
        End With
    End If

End Sub

Private Sub StopBackgroundMusic()

    MediaPlayer.Ctlcontrols.stop()

End Sub

嵌入 Windows Media Player

要将 Windows Media Player 控件嵌入到您自己的应用程序中,您必须从 Visual Studio 工具箱(当窗体处于设计模式时可见)单击“选择项”,然后选择“COM 组件”选项卡——请耐心等待,这可能需要一段时间才能加载。如果您的系统上安装了 Windows Media Player,则应该有一个标记为“Windows Media Player”的 COM 组件,其路径类似于 C:\Windows\system32\wmp.dll;选中此项,然后单击“确定”。如果您只想要应用程序中的音乐(即,不是视频),请确保将控件的 Visible 属性设置为 False

关注点

源代码中提供了一个类(ConfigurationSettings.vb),它简化了从本地配置文件保存和检索设置的用法。它会自动将设置转换为 BooleanInteger 值,反之亦然;以下是其用法示例

Private Sub PracticeTool_FormClosing(ByVal sender As Object, ByVal e As _
        System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

    m_countDownTimer.Enabled = False
    BooleanSetting("RandomTestOrder") = m_randomTestOrder
    BooleanSetting("IncludeZeroInRange") = m_includeZeroInRange
    BooleanSetting("AudioFeedbackEnabled") = m_audioFeedbackEnabled
    BooleanSetting("BackgroundMusicEnabled") = m_backgroundMusicEnabled
    BooleanSetting("BackgroundMusicAlwaysOn") = m_backgroundMusicAlwaysOn
    IntegerSetting("CorrectAnswerDelay") = m_correctAnswerDelay
    IntegerSetting("IncorrectAnswerDelay") = m_incorrectAnswerDelay
    IntegerSetting("CountDownTime") = m_countDownTime
    BooleanSetting("WrongAnswerOnTimeout") = m_wrongAnswerOnTimeout
    Setting("PracticeNumbers") = Numbers.Text
    Setting("PracticeRange") = Range.Text
    Setting("ChildsName") = m_childsName
    SaveSettings()

End Sub

一般来说,对于任何刚开始使用 VB.NET 的人来说,此应用程序应该是一个很好的例子。

使用应用程序

假设您实际上来到了这个页面,只是为了简单地将这个程序用于您自己的孩子,不用担心——使用方法应该足够简单。您所需要做的就是将二进制文件部署到它们自己的文件夹中并运行可执行文件。注意工具提示以获得帮助,并根据需要调整选项。同样,该应用程序在内部使用 Windows Media Player 控件,因此安装 Windows Media Player 是先决条件。有几个选项可以根据个别孩子的需求定制用法

Multiplication_Table_Practice_Tool_Options.JPG

此外,程序使用的音频可以在 "Audio" 文件夹中轻松更改,以更好地适应您孩子的兴趣 - 这包括一个 "background jam" 来保持趣味性。只需使用您喜欢的音频文件覆盖现有文件,只需确保使用相同的文件名即可。

© . All rights reserved.