2008年5月6日 星期二

[C++] 自訂 Message 處理 -- ON_MESSAGE

 現在很多人都開始學習 C#, 所以 MFC 應該算是舊技術了.

但是因為網路上有人要求把 EZLearn 語言學習機錄音的加上 mp3 壓縮的功能, 而錄音剛好使用的技術是 C++, MFC 和 DirectShow,

為了這個功能, 所以我在 MFC 的 Audio Recorder 視窗程式加了幾個 API 的功能, 使用自訂 Message 的方式進行了 EZLearn (C# 實作) 與 錄音功能(C++, MFC, DirectShow) 應用程式之間的溝通介面.

 

用適當的語言, 作適當的事.

 

在實作 EZLearn mp3 語音片段的過程, 為了怕忘掉. 所以寫一個下面一個簡單的 MFC 自訂Message 處理的範例.  ^_^

 

// --------------------------------- code ----------------------------

// Step 1: 宣告這個視窗接收 WM_USER +1234 訊息

BEGIN_MESSAGE_MAP(CAudioCapDlg, CDialog)

     // 注意: 不用加 ; 號

      ON_MESSAGE(WM_USER +1234,RecordAPI)

END_MESSAGE_MAP()

 

// Step 2: 加入實作 (當視窗收到 Record 指令時, 呼叫下面 method)

afx_msg LRESULT CAudioCapDlg::RecordAPI( WPARAM wParam, LPARAM lParam){
    ::MessageBox(NULL,_T("收到 post record 訊息"),_T("資訊"),MB_OK);

 

}

 

// 測試: (開另一個程式, 執行下面的 code, 看能不能收到要求錄音訊息)

    PostMessage(WM_USER +1234); // 送訊息

 

by Jing

2 則留言:

  1. C# 跟 MFC兩者不能相比吧,一個是programming language, 一個是C++ library.

    回覆刪除
  2. 對我來說, 使用 C# 幾乎就是使用.Net Framework 的意思.

    而對我來說 我不會用 C# 寫 MFC 的程式. 是我寫的不明確,不好意思.

    回覆刪除