在 VC++ 專案中加入自訂訊息,可依循以下標準化流程快速完成。
於標頭檔或共用定義檔中宣告:
#define WM_MYMESSAGE (WM_USER + 100)
函式簽名固定為 LONG Function_Name(WPARAM w, LPARAM l):
class CMyClass : public CDialog
{
// ...
afx_msg LONG OnMyMessage(WPARAM w, LPARAM l);
// ...
};
BEGIN_MESSAGE_MAP(CMyClass, CDialog)
//{{AFX_MSG_MAP(CMyClass)
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
LONG CMyClass::OnMyMessage(WPARAM w, LPARAM l)
{
// 實作自訂訊息處理邏輯
return 0;
}
現在可透過 PostMessage(WM_MYMESSAGE, wParam, lParam) 或 SendMessage(WM_MYMESSAGE, wParam, lParam) 發送自訂訊息。
提示: 若需跨進程傳遞自訂訊息,建議改用RegisterWindowMessage取得系統全域唯一訊息 ID,並搭配ON_REGISTERED_MESSAGE巨集。