在MFC对话框下自定义消息!!

来源:互联网 发布:远盾网络1亿 编辑:程序博客网 时间:2024/05/20 02:27

自定义消息过程网上很多例子,自己添加一遍总结如下:

1、自定义消息:(刚开始在resource.h中定义,但是在编译的时候,总是WM_MY_MESSAGE没有定义,不解???
在**Dlg.h中
#define WM_MY_MESSAGE WM_USER + 100
2、在类头文件的AFX_MSG块中说明消息处理函数
   在...Dlg.h的文件添加如下:
  //{{AFX_MSG(CPostmessageView)
  afx_msg void Ontydspostmessage();
  afx_msg /*LRESULT*/ void OnMyMessage(/*WPARAM wParam, LPARAM lParam*/); //用户添加 自定义消息函数说明
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()
3、自定义消息映射
在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中
在...Dlg.cpp文件添加如下代码
  BEGIN_MESSAGE_MAP(CPostmessageView, CView)
  //{{AFX_MSG_MAP(CPostmessageView)
  ON_COMMAND(ID_tyds_postmessage, Ontydspostmessage)
  ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) //添加消息映射 用户添加
  //}}AFX_MSG_MAP
  // Standard printing commands
  ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  END_MESSAGE_MAP()


4、自定义消息的实现
  void CPostmessageDlg::Ontydspostmessage()
  {
  MessageBox("begin post message!");
  //PostMessage(WM_MY_MESSAGE); //这里 PostMessage SendMessage 两则区别是
  SendMessage(WM_MY_MESSAGE); //PostMessage 是发出去就返回 而SendMessage是发出去等到被执行了,再返回
  }
  消息相应函数
  /*LPESULT*/void CPostmessageView::OnMyMessage(/*WPARAM wParam, LPARAM lParam*/) //注意这里 的参数可要可不要 根据自己来定 返回值也一样
  {
  MessageBox("post msg finished!");
  // return 0;
  }


原创粉丝点击