控制PC喇叭發聲

來源:互聯網
上載者:User

      PC喇叭發聲就是需要控制硬體的聲調和延時,讓其發出對應的聲音,可用來對外界產生測試聲音源。注意:使PC喇叭發聲是繞過音效卡的,也就是說就算電腦上沒有音效卡,該操作也可完成。

(1)建立一個MFC對話方塊,並且安置七個按鈕,分別表示聲調的7個階,每個按鈕的操作函數如下:

void CSpeakerbeepDlg::OnOne()
{
      Beep(264,500);      //頻率(單位赫茲),延時(單位毫秒)
}

void CSpeakerbeepDlg::OnTwo()
{
      Beep(296,500);
}

void CSpeakerbeepDlg::OnThree()
{
      Beep(330,500);
}

void CSpeakerbeepDlg::OnFour()
{
      Beep(349,500);
}

void CSpeakerbeepDlg::OnFive()
{
      Beep(392,500);
}

void CSpeakerbeepDlg::OnSix()
{
      Beep(440,500);
}

void CSpeakerbeepDlg::OnSeven()
{
       Beep(494,500);
}
以上按鈕即可實現驅使PC喇叭發出音階的聲音

(2)如果還想利用PC小鍵盤上的數字鍵,快捷的控制PC喇叭發聲。則需要用到處理PreTranslateMessage這個訊息處理。在MFC中,PreTranslateMessage是虛函數,我們可以重載它來處理鍵盤和滑鼠訊息。該函數表示在訊息處理(TranslateMessge()和DispatchMessage()等)前所作的操作,如果函數傳回值為TRUE,那麼訊息處理即終止,不會調用TranslateMessge()和DispatchMessage()來翻譯和分發訊息給相應的視窗;若傳回值為FALSE,才會調用翻譯和分發訊息函數。

      在類嚮導中添加這個訊息,然後開始該訊息處理。如下:

BOOL CSpeakerbeepDlg::PreTranslateMessage(MSG* pMsg)
{
      if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD1)
     {
            this->OnOne();     //this指向當前應用程式指標
     }
     if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD2)
    {
            this->OnTwo();
     }
     if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD3)
     {
            this->OnThree();
     }
     if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD4)
     {
            this->OnFour();
     }
     if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD5)
     {
            this->OnFive();
     }
     if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD6)
    {
            this->OnSix();
     }
     if (pMsg->message==WM_KEYDOWN && pMsg->wParam>VK_NUMPAD7)
    {
            this->OnSeven();
    }
     return CDialog::PreTranslateMessage(pMsg);
}

按不同的數字鍵,即可發出連續的音階聲,數字越大發出的音階聲越完整。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.