消息映射到哪个函数里

a6965921z 2010-02-03 06:44:42
消息映射到哪个函数里
...全文
129 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sou2012 2010-02-04
  • 打赏
  • 举报
回复
如果是 WIN32, 则 在窗口过程中 XXXWindowProc

如果是 MFC, 则在头文件和源文件中都有

如果是 ATL, 在头文件中
glacierful 2010-02-04
  • 打赏
  • 举报
回复
其实就是在一个链表里边加一个成员。这个成员是个结构,其中有两项是消息和函数指针。那个消息对应那个函数,这个需要你指定,在cpp文件中一般会有一个这样的地方:
BEGIN_MSG_MAP(XXX)
// 添加映射
END_MSG_MAP()

你在其中指定消息映射到那个函数,都有很多宏来做这个事情,如:ON_COMMAND,那个消息具体要对应什么格式的函数,查查MSDN就知道了。
Eleven 2010-02-04
  • 打赏
  • 举报
回复
去看侯捷的MFC深入浅出吧,看看消息路由那块
vclongking 2010-02-04
  • 打赏
  • 举报
回复
1楼一来就给你把问题说清楚了

你说的函数其实就是消息响应的地方 而映射来说是针对类 某个对象来接收响应这些消息
jccaoyh 2010-02-04
  • 打赏
  • 举报
回复
XXXDlg.cpp里去找这段,往这中间添加:
BEGIN_MESSAGE_MAP(CxxxxDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_EN_CHANGE(IDC_EDIT1, &CxxxxDlg::OnEnChangeEdit1)
END_MESSAGE_MAP()
jianghandaxue 2010-02-04
  • 打赏
  • 举报
回复
别人已经说的很清楚了!!!!!!!!!!!
mei1977mei 2010-02-03
  • 打赏
  • 举报
回复
基本没有把问题描述清楚!所以无法解答!
sjdev 2010-02-03
  • 打赏
  • 举报
回复
举个例子:
譬如你从mfc appwizard生成了一个基于对话框的程序Demo,
那么,你的CDemoDlg,就可以响应一些消息,响应鼠标按下,按键等消息。

通过ide的类向导(Ctrl+W,可以添加消息映射).

消息映射,其实是一大张表,它记录着消息的流向,MFC为了简化程序员的工作,定义了消息映射宏。
使用类向导添加消息映射时,实际是在消息映射宏上添加项。

一般情况下,添加消息映射后,会在.h文件中看到afx_msg xxx这样的字样。
而cpp文件中,会有
BEGIN_MSG_MAP(XXX)
XXX
END_MSG_MAP()
这样的字样。
a6965921z 2010-02-03
  • 打赏
  • 举报
回复
举个例子么
shihaojie1219 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sjdev 的回复:]
不是映射到函数里,是映射到某个类。

如果你的一个类,需要处理消息,你需要给它添加消息映射。
[/Quote]
说的很清楚了
ltrwangyu 2010-02-03
  • 打赏
  • 举报
回复
up
sjdev 2010-02-03
  • 打赏
  • 举报
回复
不是映射到函数里,是映射到某个类。

如果你的一个类,需要处理消息,你需要给它添加消息映射。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧