在一个对话框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,0,0); //这样就能调用OnData了
}
上面用到的是一个回调函数,在写程序的时候调用这个回调函数就行了,这样就能相应WM_DATA的消息了。
参考资料;
http://blog.****.net/nnsword/article/details/2976844 这里说LRESULT MARK::OnData(WPARAM wParam, LPARAM lParam)的参数和返回值可要可不要
http://www.cppblog.com/xpzhou/archive/2007/04/18/22185.html
注:若有错误,欢迎指正。