主要是些一个计算器,学习中。对于0 - 9 这10个按钮,id分别为 IDC_0到 IDC_9
ON_COMMAND_RANGE(IDC_0,IDC_9,&CCalculatorDlg::OnOperandInput)
这个宏来接受来自这10个按钮的消息。
在对按钮添加消息处理函数时,我在函数名里直接输入OnOperandInput,却不是使用我定义的OnOperandInput(nID),而是自动添加了一个无参数的OnOperandInput()函数。假设是使用了我定义的OnOperandInput(nID),但我在对第二个按钮进行添加处理函数是,却显示OnOperandInput(nID)已存在,我想问下怎么解决这两个问题,谢谢。在线等

解决方案 »

  1.   

    ON_COMMAND_RANGE 是不是用在菜单里面的啊??你在Button的响应里面能用吗??
      

  2.   

    可以,对于button1按钮
    ON_BN_CLICKED(IDC_BUTTON1,&CCalculatorDlg::OnOperandInput)
    这样发生button1点击事件时,自动调用CCalculatorDlg::OnOperandInput()
    但要注意参数
      

  3.   

    ON_COMMAND_RANGE用法
    afx_msg void OnOutPutStatusButtonUp (WPARAM wParam, LPARAM lParam);
    BEGIN_MESSAGE_MAP(CIOStatue, CDialog)
    //{{AFX_MSG_MAP(CIOStatue)
    //}}AFX_MSG_MAP
    //注意IDC_STATIC_OUT1,IDC_STATIC_OUT16之间是连续的
    ON_COMMAND_RANGE(IDC_STATIC_OUT1,IDC_STATIC_OUT16,OnOutPutStatusButtonUp)
    END_MESSAGE_MAP()
    void CIOStatue::OnOutPutStatusButtonUp(WPARAM wParam, LPARAM lParam)
    {
    switch(wParam)
    {
    case IDC_STATIC_OUT1:
    //代码1
    break;
    case IDC_STATIC_OUT2:
    //代码2
    break;case IDC_STATIC_OUT3:
    //
    break;
    //等
    }}