我在用MFC编写一个界面程序,需要动态的创建控件,也知道怎么响应。但是遇到一个问题,我动态创建的控件个数是不确定的,有时可能10个,有时可能更多,这样给每个按钮都写一个响应函数有些不切实际,有什么更好的办法吗,比方说只写一个响应函数,但能判断是那个控件产生消息。
请求各位大侠帮忙哈,谢谢。补充一下,我是动态的创建CMenu,pop类型的。

解决方案 »

  1.   

    afx_msg void OnButtonClicked(UINT nID);ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON_1, IDC_BUTTON_XX, OnButtonClicked)void CXXX::OnButtonClicked(UINT nID)
    {
     CString str;
     str.Format(_T("Index: %d"), nID - IDC_BUTTON_1);
     AfxMessageBox(str);
    }
    注意button控件的ID号码连续
      

  2.   

    我也遇到这样的问题啊,ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON_1, IDC_BUTTON_XX, OnButtonClicked)的确是可以,但假如我的这个按钮数量是写在配置文件中的呢,包括按钮ID也在配置文件中,ON_CONTROL_RANGE后面的参数似乎必须是常量 ,我如何解决呢?急求大家帮忙看看啊