请教一个问题:在一个按钮的触发事件中如何获得该按钮的ID号?谢谢!

解决方案 »

  1.   

    GetDlgCtrlID(hwnd);
    you can use EnumChildWindows To get button hwnd.
      

  2.   

    GetDlgCtrlID(hwnd)
    还有个常用的是GetDlgItem(hwnd);那个是获得组件,或者叫窗口的句柄。
      

  3.   

    好像不行?
    afx_msg void OnButtonGrefresh();ON_BN_CLICKED(IDC_BUTTON_GREFRESH, OnButtonGrefresh)void CNetViewDlg::OnButtonGrefresh() 
    {
    int i=GetDlgCtrlID();
    }结果 i=0;  why? 
      

  4.   

    是这样的,我动态生成按钮,个数不确定,还要对按钮进行处理,
    比如:#diefine IDC_BUTTON_00    1000
    #diefine IDC_BUTTON_01    1001
    #diefine IDC_BUTTON_02    1002
    #diefine IDC_BUTTON_03    1003
    #diefine IDC_BUTTON_04    1004
    #diefine IDC_BUTTON_05    1005
    #diefine IDC_BUTTON_06   1006afx_msg void OnButtonGrefresh();ON_BN_CLICKED(IDC_BUTTON_00, OnButtonGrefresh)
    ON_BN_CLICKED(IDC_BUTTON_01, OnButtonGrefresh)
    ON_BN_CLICKED(IDC_BUTTON_02, OnButtonGrefresh)
    ON_BN_CLICKED(IDC_BUTTON_03, OnButtonGrefresh)
    ON_BN_CLICKED(IDC_BUTTON_04, OnButtonGrefresh)
    ON_BN_CLICKED(IDC_BUTTON_05, OnButtonGrefresh)
    ON_BN_CLICKED(IDC_BUTTON_06, OnButtonGrefresh)void CNetViewDlg::OnButtonGrefresh() 
    {
         int ID=当前鼠标点击的按钮ID号;
         CString str;
         str.Format("%d",ID%1000);
         AfxMessageBox(str);//输出用户按下的按钮

    }
      

  5.   

    ON_COMMAND_RNAGE(ID_FIRST ,ID_LAST,OnButton)afx_msg void OnButton(UINT nID) ; 这个nID就是你想要的