有一个对话框,里面有COMBOX(大于100个),请问如何遍历它们,并将其默认选中第一个选项。遍历其实我知道,就是不知道如何获得他们的类型。注意:这些COMBOX都是未绑定任何数据类型,也就是都是这种的IDC_COMBOxx是数字。

解决方案 »

  1.   

    GetDlgItem(idc_comboxx)->GetClassName(...)//获得控件的windows类名并跟"ComboBox"比较
      

  2.   

    CWnd类里没有这个方法吧?如果是API的话,那又怎么可以用GetDlgItem(idc_comboxx)->GetClassName(...)呢??请指点。
      

  3.   

    用 IsKindOf( )吧
    IsKindOf(const CRuntimeClass* pClass )
      

  4.   

    差点忘了char buf[255];
    ::GetClassName(GetDlgItem(idc_comboxx).GetSafeHwnd(),buf,255);
      

  5.   

    这个我已经实现了,代码是这样的。大家看看:
    HWND hWnd = ::GetWindow(this->GetSafeHwnd(),GW_CHILD);
    TCHAR ccc[16] = {0}; while (hWnd)
    {
    hWnd = ::GetWindow(hWnd,GW_HWNDNEXT);
    GetClassName(hWnd,ccc,128);
    CString aaa(ccc);
                      if (aaa=="ComboBox")
        //问题在这里,这里已经判断出了是ComboBox但是如何把默认选种的设为第一列呢?只知道句柄该怎么做呢?
    }
      

  6.   

    SendMessage( 
      (HWND) hWnd,        // handle to destination window 
      CB_SETCURSEL,       // message to send
      (WPARAM) wParam,    // item index
      (LPARAM) lParam     // not used; must be zero
    );