VC增加自定义消息
来源:优易学  2011-1-13 13:05:34   【优易学:中国教育考试门户网】   资料下载   IT书店
  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:我用于在多线程全部完成时发送自定义消息到主窗口,主窗口接收。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训