VC初学者的问题,求助于大侠 (关于自定义消息)

rfit 2000-04-19 01:31:00
加精
用户类的消息块中,使用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()

请问:有书上说:ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) 应放在
BEGIN_MESSAGE_MAP() 语句之后,但必须将它加在 AFX_MSG_MAP 括弧对之外。

但有人发表的文章中代码如上,将ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)放在
将它加在 AFX_MSG_MAP 括弧对之内了。

到底有没有规定,自定义消息应放在消息块的什么地方?
...全文
376 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Spadger 2000-04-30
  • 打赏
  • 举报
回复
这只是个人风格问题。我的程序一般在//}}AFX_MSG_MAP前的都是windows的自定义消息
或资源的消息(也就是说:ToolbarSubItem\MenuSubItem 的消息)。在//}}AFX_MSG_MAP外的都是特定自定义消息,比如你想实现程序在得到按着LeftArrow或Shift+LeftArrow的消息时就传给某个成员函数True或False值。这样利于程序修改。
Sniper 2000-04-20
  • 打赏
  • 举报
回复
同意RiverHill的观点,没有什么好争议的,按约定作就是了。
RiverHill 2000-04-20
  • 打赏
  • 举报
回复
//微软程序指南书中建议:
//自定义消息应该按如下位置放置
//}}AFX_MSG_MAP
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) -----(这是我的自定义消息)
END_MESSAGE_MAP()

//这样,在代码维护的时候,别的程序员一眼就能看见你自定义的消息,一目也然。
//这是约定成俗的东东,不用争议。这样做,只有好处,没有坏处。
softdoctor 2000-04-19
  • 打赏
  • 举报
回复
//}}AFX_MSG_MAP
只是给 ClassWizard 用的
对程序本身没有任何影响
ClassWizard用他来确定哪些是有它生成的,哪些不是。
所以自定义的的消息最好放于
//}}AFX_MSG_MAP后。
不放在那里也不会有问题的。
telan 2000-04-19
  • 打赏
  • 举报
回复
其实是这样的,//{{....和//}}...这样的标签是给
ClassWizard识别用的,如果你将自定义消息放在
里面,这样在ClassWizard的成员函数框中可以看到
自己定义的消息处理函数,否则,放在外面是看不见
的,只有这么一点区别而已。一般将自定义消息放在
括号外面是增加代码的可读性,让人一看就知道是自
定义消息,而非用CLASSWIZARD添加的标准消息映射,
这是一种好的习惯。
davyguo 2000-04-19
  • 打赏
  • 举报
回复
基本同意student1234的观点,如果放在//AFX_MSG_MAP之后,当再用classwizard
加入消息映射时,偶尔你自定义的消息映射会无影无踪.


student1234 2000-04-19
  • 打赏
  • 举报
回复
//AFX_MSG_MAP是自动生成的标示符,并没有什么特别的含义。当然你最好写在//AFX_MSG_MAP之后,这样代码可以清晰一些。应该没有影响。

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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