静态框,编辑框,单选框,组合框等等,如何获取它的类型。通过当前焦点得到ID号,然后如何判断该控件的类型。另外,如果得到的是一组单选框,如何区分两组单选框???

解决方案 »

  1.   

    if(getid()==idc_edit1)
    这个就判断是哪个控件了至于你说的两组单选框 这个就别用getid的方法了 一个一个写 别这个省事多了
      

  2.   

    CWnd *pWnd = GetDlgItem(nID);
            char chName[30] = {0};
    GetClassName(pWnd->m_hWnd,chName,30);
            CString sName = chName;
            if(chName == "Button")
                AfxMessageBox("是按钮");
            ......
      

  3.   

    这个楼主需要看一下WINDOWS程序设计这本书了,按钮类button包含了好几种,其中RADIO,CHECK,BUTTON...都属于按钮类了
      

  4.   

    哦还有static静态控件也属于button类,编辑框属于edit类等等、、、
      

  5.   

    static静态控件也属于button类????
    按钮类button包含了好几种,其中RADIO,CHECK,BUTTON...都属于按钮类了,区别是风格不同
      

  6.   


    if (GetWindowLongPtr(hwnd, GWL_STYLE) & BS_CHECKBOX)
    {
    //多选按钮
    }
    if (GetWindowLongPtr(hwnd, GWL_STYLE) & BS_RADIOBUTTON)
    {
    //单选按钮
    }
      

  7.   

    在界面上有很多控件,各种控件都有。就是当焦点移动到Radio,ComBox等控件上时,需要通过方向键来选择内容。因现在不能用键盘和鼠标操作,是通过串口设备控制的。就是想先判断焦点是否是在这些控件上,然后再模拟方向键....GetWindowLongPtr(hwnd, GWL_STYLE)好像不行,试了下...
    没查到类似的....
    求助啊
      

  8.   

    GetWindowLongPtr(hwnd, GWL_STYLE)
    这个hwnd是控件的句柄,不是主窗口的句柄
      

  9.   

    我是这样写的
    CWnd *pWnd = GetDlgItem(GetFocus()->GetDlgCtrlID());
    if (GetWindowLong(pWnd->m_hWnd, GWL_STYLE) & BS_RADIOBUTTON)
    {
    MessageBox("单选按钮");
    }
    运行的时候当焦点在单选按钮控件上时,没能成功!
      

  10.   

    我是要得到具体的类型。这样的话只能得到Button,不能得到Radio