VC增加自定義訊息 (轉)

gugu99發表於2007-08-16
VC增加自定義訊息 (轉)[@more@]ClassWizard不允許增加自定義訊息,所以你必須手工輸入。輸入後,ClassWizard就可以象處理其它訊息一樣處理你自定義的訊息了。

下面是增加自定義訊息的步驟:

第一步:定義訊息。開發95應用時,推薦使用者自定義訊息至少是WM_USER+100,因為很多新也要使用WM_USER訊息。

第二步:實現訊息處理。該函式使用WPRAM和LPARAM引數並返回LPESULT。

LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// TODO: 處理使用者自定義訊息
...
return 0;
}
第三步:在類頭的AFX_MSG塊中說明訊息處理函式:

class CMainFrame:public CMDIFrameWnd
{
...
// 一般訊息對映函式
protected:
// {{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT nvent);
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}
第四步:在使用者類的訊息塊中,使用ON_MESSAGE宏指令將訊息對映到訊息處理函式中。

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_TIMER()
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

如果使用者需要一個整個唯一的訊息,可以SDK函式RegisterWindowMessage並使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其餘步驟同上。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-960747/,如需轉載,請註明出處,否則將追究法律責任。

相關文章