您的位置:首页 > 其它

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

2011-08-29 10:49 337 查看
自定义消息过程网上很多例子,自己添加一遍总结如下:

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;

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc command printing file user