一个简单的问题:ON_COMMAND_RANGE问题

sunshine_djh 2002-07-28 10:01:30
我用ON_COMMAND_RANGE,在DEBUG下运行很正常,可是在RELEASE却总是出错,函数里什么都不写都有错。
请高手指点。
...全文
695 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengbangyue 2010-06-23
  • 打赏
  • 举报
回复
谢谢 le
sunshine_djh 2002-07-29
  • 打赏
  • 举报
回复
不带参数,就象是一般的COMMAND消息啊,响应按纽操作呀,ON_COMMAND_RANGE(IDC_CLIENT0,IDC_CLIENT5,OnClient)中不是已经指明了是哪个控件响应消息吗?
kingsoft111 2002-07-29
  • 打赏
  • 举报
回复
要带参数的
studentforever 2002-07-29
  • 打赏
  • 举报
回复
UINT nID
nID指响应消息的ID号,以方便同一消息,对不同的ID,有不同的处理。
你不带参数,它怎么知道是哪一个控件该响应消息呢?
sunshine_djh 2002-07-29
  • 打赏
  • 举报
回复
agui79,我只把第2个问题解决了,在OnClient(UINT nID )中加了个参数,函数体里没管它,竟然执行对了,没有什么错误了。可是我还是不明白为什么release下非要这个没起作用的参数呢?而debug下却可以不要这个参数?
我以为release和debug只在内存管理上有不同
sunshine_djh 2002-07-29
  • 打赏
  • 举报
回复
谢谢agui79
1.我的确是放在里面,可是有什么分别呢?
2.为什么OnClient(UINT nID )要带个参数呀,直接的COMMAND命令呀,鼠标点击按纽的操作,我要带什么参数呢?
agui79 2002-07-29
  • 打赏
  • 举报
回复
1。ON_COMMAND_RANGE(IDC_CLIENT0,IDC_CLIENT5,OnClient)的声明应该放在{{//...的外面。
2。afx_msg void OnClient(UINT nID ),瞧,需要带个参数,没有参数怎么知道是那个命令调用它的呢!!!
你瞧你的是不是这样!
sunshine_djh 2002-07-29
  • 打赏
  • 举报
回复
我就在三个地方用过的:
1.在消息映射中:
ON_COMMAND_RANGE(IDC_CLIENT0,IDC_CLIENT5,OnClient)
(IDC_CLIENT0,IDC_CLIENT5中间有六个ID,并且他们都是相邻的)
2.在头文件定义中:
afx_msg void OnClient();
3.函数体:
void OnClient()
函数体里面什么都不写,都有错误。
sunshine_djh 2002-07-29
  • 打赏
  • 举报
回复
原来我用const MSG* pMsg = GetCurrentMessage()来得到消息,通过消息中的参数得到的ID,怪不得我半天摸不着头脑!
agui79 2002-07-29
  • 打赏
  • 举报
回复
我看你还有点弄糊涂了。
ON_COMMAND_RANGE(IDC_CLIENT0,IDC_CLIENT5,OnClient)是知道是那个调用阿,但你函数里面你怎么写,你靠什么来判断???想过没有??
agui79 2002-07-29
  • 打赏
  • 举报
回复
首先,ClassWizard自己不支持ON_COMMAND_RANGE,所以你在ClassWizard中找不到该消息,它只支持ON_COMMAND,所以你自己添加的时候不要放在那个里面。请看原话:ClassWizard does not support message map ranges, so you must place the macro yourself. Be sure to put it outside the message map //{{AFX_MSG_MAP delimiters.

其次:为什么要参数那就有很大的作用。譬如说,我想用户点击IDC_CLIENT0时会显示1,点IDC_CLIENT1时显示2....,如果没有参数那该怎么办呢?所以这时就可通过参数来判断这时这函数是由哪个命令所调用。即使你不需要辨别是那个命令所调用,但是参数仍然需要,这就是MFC所规定的。
nicolas 2002-07-28
  • 打赏
  • 举报
回复
不把代码贴上来,怎么替你把脉?
head163 2002-07-28
  • 打赏
  • 举报
回复
代码贴上来!

16,472

社区成员

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

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

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