程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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