ON_NOTIFY_RANGE(BN_CLICKED,WM_BTN,WM_BTN+20,memberFxn)
afx_msg void memberFxn( UINT id ,NMHDR * pNotifyStruct, LRESULT * result);
 void memberFxn( UINT id ,NMHDR * pNotifyStruct, LRESULT * result)
{
//根据id号实现不同的方法
}我想让20个动态创建的按钮,响应在一个函数里.怎么使用ON_NOTIFY_RANGE?或者有其他更好的方法?error LNK2001: 无法解析的外部符号 "public: void __thiscall CmycomDlg::memberFxn(unsigned int,struct tagNMHDR *,long *)" (?memberFxn@CmycomDlg@@QAEXIPAUtagNMHDR@@PAJ@Z)
1>F:\codePro\mycom\Debug\mycom.exe : fatal error LNK1120: 1 个无法解析的外部命令

解决方案 »

  1.   

    memberFxn得在类中声明
    在.cpp中定义时
    void 类名::memberFxn( UINT id ,NMHDR * pNotifyStruct, LRESULT * result)
      

  2.   

    for (i=0;i<MAX_NUMBER;++i)
    {

    m_btnName[i]=new CButton();
    m_btnName[i]->Create(NULL,WS_CHILD|BS_PUSHBUTTON,CRect(X_POS+X1_WIDTH+X2_WIDTH+X3_WIDTH+X_DEF*3,
    Y_POS+i*Y_DEF,X_POS+X1_WIDTH+X2_WIDTH+X3_WIDTH+X_DEF*3+X4_WIDTH,Y_POS+i*Y_DEF+Y_HEIGHT),this,i+WM_BTN);

    }
    为什么现在点了按钮也没反应呢???
      

  3.   

    ON_NOTIFY_RANGE
    改成
    ON_COMMAND_RANGE
      

  4.   

    函数原型
    void memberFxn(UINT nID)
      

  5.   

    那为什么ON_NOTIFY_RANGE会不行呢?
      

  6.   

    BN_CLICKED是WM_COMMAND消息,不是WM_NOTIFY消息,所以要用ON_COMMAND_RANGE,不能用ON_NOTIFY_RANGE。