关于ON_COMMAND_RANGE的问题:我按顺序排列id,为什么还不行

io567n 2005-07-28 02:13:37
我在做一个计算器时,向对话框里面加入了IDC_OPERATION1——IDC_OPERATION9九个按钮控件,用ON_COMMAND_RANGE(IDC_OPERATION1,IDC_OPERATION9,OnOperation)进行消息映射,

在***dlg.h中的
// Generated message map functions
//{{AFX_MSG(CMyDlg)
afx_msg void OnOperation (UINT nID );
..........
//}}AFX_MSG
DECLARE_MESSAGE_MAP()


在***dlg.cpp文件中
ON_COMMAND_RANGE(IDC_OPERATION1,IDC_OPERATION9,OnOperation)


在resource.h中
#define IDC_OPERATION1 1001
#define IDC_OPERATION2 1002
#define IDC_OPERATION3 1003
#define IDC_OPERATION4 1004
#define IDC_OPERATION5 1005
#define IDC_OPERATION6 1006
#define IDC_OPERATION7 1007
#define IDC_OPERATION8 1008
#define IDC_OPERATION9 1009





我按按钮1可能4反应,按钮5可能8反应,这是为什么呢?
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChenJF206 2005-07-29
  • 打赏
  • 举报
回复
ON_COMMAND
When a command-target object receives a Windows WM_COMMAND message with the specified ID, ON_COMMAND will call the member function memberFxn to handle the message.

ON_CONTROL
Indicates which function will handle a custom-control notification message.

简单来说,就是前者针对WM_COMMAND,后者针对用户控件的notification message。你程序里面按钮的按下操作发送的是通知消息,事件码是BN_CLICKED。
io567n 2005-07-29
  • 打赏
  • 举报
回复
to ChenJF206(峰):

按照 ChenJF206(峰)的办法解决了,多谢了。
可我还有一点不明白,为什么用 ON_COMMAND_RANGE(IDC_OPERATION1,IDC_OPERATION9,OnOperation)就不行呢,好多书上和论坛都这么写的呀?
io567n 2005-07-29
  • 打赏
  • 举报
回复
to ChenJF206(峰):
非常感谢:)
ChenJF206 2005-07-28
  • 打赏
  • 举报
回复
ON_CONTROL_RANGE(BN_CLICKED, IDC_OPERATION1, IDC_OPERATION9, OnOperation);
试下这种看看
io567n 2005-07-28
  • 打赏
  • 举报
回复
好的,我明天贴上来,请大侠帮忙看看
windcsn 2005-07-28
  • 打赏
  • 举报
回复
如果你的代码不多,请都贴上来
io567n 2005-07-28
  • 打赏
  • 举报
回复
按钮和资源的对应绝对没错,我反复看了好几遍,头都快想破了
C**dlg::OnOperation (UINT nID )
{
.......
switch(nID)
{
case IDC_OPERATION1:
.......;
break;
case IDC_OPERATION2:
.......
break;
........
}
........
}
xqk 2005-07-28
  • 打赏
  • 举报
回复
不可能啊
windcsn 2005-07-28
  • 打赏
  • 举报
回复
你确定你的按牛编号和指定的资源对应好了吗?
另外你的OnOperation对不同的进行判断了吗?
调式跟踪,看看nID 是什么值

16,472

社区成员

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

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

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