Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
你需要自己写一个音阶的对照表
频率-音符
有一个函数关系,记不很清楚了,很早的一些资料有的

解决方案 »

  1.   

    up 就用beep,但是频率控制比较麻烦... 呵呵以前有8086汇编专门讨论这个,你有兴趣用汇编么?
      

  2.   

    调用Windows的一些有关发声的API函数。Windows系统包含十六个
    声音函数,它们都存放在Windows的SOUND.DRV这个驱动程序所包含的动态连接库
    中。其中最常用的四个函数是OpenSound,CloseSound,SetVoiceNote,Start-
    Sound。其声明格式如下:
    Declare Function OpenSound Lib "Sound" () As Integer
    Declare Sub CloseSound Lib "Sound" ()
    Declare Function SetVoiceNote Lib "Sound" (ByVal nVoice As
    Integer, ByVal nValue As Integer, ByVal nLength As Integer, ByVal 
    nCdots As Integer) As Integer
    Declare Function StartSound Lib "Sound" () As Integer
    在Visual Basic的通用过程中声明上述函数后,就可以象使用Visual Basic
    自己的函数一样使用Windows的API函数。
    下面给出一个例子,只需要在窗体中放置7个按钮组成的控件数组,调用上述
    函数就可以简单的实现准确的音阶:
    Sub Command1_Click (index As Integer)
    a% = OpenSound()
    Select Case index
    Case 0: f = 37
    Case 1: f = 39
    Case 2: f = 41
    Case 3: f = 42
    Case 4: f = 44
    Case 5: f = 46
    Case 6: f = 48
    End Select
    call SetVoiceNote(1, f, 4, 0)
    call StartSound()
    End Sub
      

  3.   

    Beep VB声明 
    Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long 
    说明 
    用于生成简单的声音 
    返回值 
    Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError 
    参数表 
    参数 类型及说明 
    dwFreq Long,声音频率(从37Hz到32767Hz)。在windows95中忽略 
    dwDuration Long,声音的持续时间,以毫秒为单位。如为-1,表示一直播放声音,直到再次调用该函数为止。在windows95中会被忽略 
    注解 
    在windows95中,这个函数简单的播放默认系统响铃