程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> VC增加自定義消息

VC增加自定義消息

編輯:關於VC++

ClassWizard不允許增加用戶自定義消息,所以你必須手工輸入。輸入後,ClassWizard就可以象處理其它消息一樣處理你自定義的消息了。

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

第一步:定義消息。開發Windows95應用程序時,Microsoft推薦用戶自定義消息至少是WM_USER+100,因為很多新控件也要使用WM_USER消息。

第二步:實現消息處理函數。該函數使用WPRAM和LPARAM參數並返回LRESULT。

LRESULTCMainFrame::OnMyMessage(WPARAMwParam,LPARAMlParam) //Lonefox轉注:若是通過MFC添加的函數,必須把類定義中的函數頭刪除,否則和下面的消息映射定義重疊,編譯時報重定義錯誤
{ 
//TODO:處理用戶自定義消息 
... 
return0; 
}

第三步:在類頭文件的AFX_MSG塊中說明消息處理函數:

classCMainFrame:publicCMDIFrameWnd 
{ 
... 
//一般消息映射函數 
protected: 
//{{AFX_MSG(CMainFrame) 
afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct); 
afx_msgvoidOnTimer(UINTnIDEvent); 
afx_msgLRESULTOnMyMessage(WPARAMwParam,LPARAMlParam); 
//}}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

=======================

Lonefox:我用於在多線程全部完成時發送自定義消息到主窗口,主窗口接收。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved