MFC 实现自定义消息 示例

来源:互联网 发布:微信小程序源码百度云 编辑:程序博客网 时间:2024/06/04 23:19
WM_USER

  为了防止用户定义的消息ID与系统的消息ID冲突,MS(Microsoft)定义了一个宏WM_USER,小于WM_USER的ID被系统使用,大于WM_USER的ID被用户使用。
  所以自定义消息的时候:
  (一)现在头文件中定义自己消息的ID,如 #define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)
  (二)在定义自己的处理函数afx_msg void OnMyFirstMessage();
  (三)在CPP文件中:
  在BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP代码块中添加,建议用户定义消息添加到//}}后面,
  ON_MESSAGE(WM_MY_FIRST_MESSAGE, OnMyFirstMessage)
  (四)最后定义函数。

CODE:

#define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)

SendMessage(hDialg1,WM_MY_FIRST_MESSAGE,0,0);

头文件

afx_msg LRESULT OnMyFirstMessage(WPARAM wParam,LPARAM lPram);


消息映射

ON_MESSAGE(WM_MY_FIRST_MESSAGE, OnMyFirstMessage)


函数实现

LRESULT CDialog1::OnMyFirstMessage(WPARAM wParam,LPARAM lPram)
{
     SetDlgItemTextW(IDC_STATIC_COUNT,L"ming hong test.");
     return 0;
}


例如:主程序MyDlg.cpp
  1.自定义消息:#define WM_TRAY WM_USER+100
  2.函数原形:afx_msg LRESULT OnTrayNotify(WPARAM wParam,LPARAM lParam);
  3.消息映射:ON_MESSAGE(WM_TRAY,OnTrayNotify)
  4.原函数:
  LRESULT CMyDlg::OnTrayNotify(WPARAM wParam,LPARAM lParam)
  {
  return m_tray.OnTrayNotify(wParam,lParam);
  }














原创粉丝点击