VC中自定義訊息ON_MESSAGE的用法
在一個對話方塊mark.cpp中,自定義一個訊息,
首先在mark.cpp中新增
#define WM_DATA WM_USER+100
之後再mark.h裡
protected:
// Generated message map functions
//{{AFX_MSG(MARK)
afx_msg void OnStart();
afx_msg void OnStop();
virtual BOOL OnInitDialog();
virtual void OnOK();
//}}AFX_MSG
afx_msg LRESULT OnData(WPARAM wParam,LPARAM lParam);//新增宣告
DECLARE_MESSAGE_MAP()
再在mark.cpp中新增
BEGIN_MESSAGE_MAP(MARK, CDialog)
//{{AFX_MSG_MAP(MARK)
ON_BN_CLICKED(IDC_START, OnStart)
ON_BN_CLICKED(IDC_STOP, OnStop)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_DATA,OnData) //此處為新增的自定義訊息,用OnData函式來相應WM_DATA訊息
再新增一個OnData的函式
LRESULT MARK::OnData(WPARAM wParam, LPARAM lParam)
利用:
void CALLBACK ADHandler( UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1,DWORD dw2)
{
HWND hwnde=GetForegroundWindow();
::PostMessage(hwnde,WM_DATA,
}
上面用到的是一個回撥函式,在寫程式的時候呼叫這個回撥函式就行了,這樣就能相應WM_DATA的訊息了。
參考資料;
http://blog.csdn.net/nnsword/article/details/2976844 這裡說LRESULT MARK::OnData(WPARAM wParam, LPARAM lParam)的引數和返回值可要可不要
http://www.cppblog.com/xpzhou/archive/2007/04/18/22185.html
注:若有錯誤,歡迎指正。