VC++里ComboBox的用法(详细版)

VC++里ComboBox的用法   HWND  hwndCombo1= GetDlgItem(hwnd,IDC_COMBO1);
   ***注释***ComboBox_AddString向ComboBox控件里添加某个选项   
   ComboBox_AddString(hwndCombo1,TEXT("北京市"));
   ComboBox_AddString(hwndCombo1,TEXT("天津市"));
   ComboBox_AddString(hwndCombo1,TEXT("开原市")); 


    
   *******************我是分割线*******************


   ***注释***ComboBox_InsertString向ComboBox控件里插入某个选项   
   ComboBox_InsertString(hwndCombox1,-1,TEXT("开原市"));
   ComboBox_InsertString(hwndCombox1,-1,TEXT("北京市"));
   ComboBox_InsertString(hwndCombox1,-1,TEXT("天津市"));  


 


   *******************我是分割线*******************
   ***注释***ComboBox_GetCurSel获得ComboBox控件的选型id   
   int curSel = ComboBox_GetCurSel(hwndCombo1);
   if(0==curSel)
   {
    MessageBox(hwnd,TEXT("你选择是北京市"),TEXT("消息"),MB_OK);
   }   


 


   *******************我是分割线*******************
   ***注释***ComboBox_DeleteString向ComboBox控件里移除某个选项
   int curSel = ComboBox_GetCurSel(hwndCombo1);
   ComboBox_DeleteString(hwndCombo1,curSel);


 


   //*******************我是分割线*******************
   ***注释***ComboBox_GetCount得到ComboBox控件选项数目
   int intCount = ComboBox_GetCount(hwndCombo1);
   TCHAR strCount[256];
   wsprintf(strCount,"%i",intCount);
   MessageBox(hwnd,TEXT(strCount),TEXT("长度"),MB_OK);




   *******************我是分割线*******************
   ***注释***ComboBox_SetCurSel选择某个选项
   ComboBox_SetCurSel(hwndCombo1,2);


 


   *******************我是分割线*******************
   ***注释***ComboBox_GetLBText选择具体的某个值
   TCHAR str[256];
   ComboBox_GetLBText(hwndCombo1,0,str);
   MessageBox(hwnd,TEXT(str),TEXT("消息"),MB_OK);




comboBox的增加删除练习
代码如下:


BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{


 HWND hwndcombo =  GetDlgItem(hwnd,IDC_COMBO1);
    ComboBox_InsertString(hwndcombo,-1,"河北");
 ComboBox_InsertString(hwndcombo,-1,"安徽");
    ComboBox_InsertString(hwndcombo,-1,"浙江");
 ComboBox_InsertString(hwndcombo,-1,"江苏");


    return TRUE;
}


void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
  {
   HWND hwndcombo = GetDlgItem(hwnd,IDC_COMBO1);
   ComboBox_AddString(hwndcombo,TEXT("上海")); 
  }
        break;


  case IDC_ADD:
   {
    TCHAR str[256];
    GetDlgItemText(hwnd,IDC_COMBO1,str,sizeof(str)/sizeof(TCHAR));
    HWND hwndcombo = GetDlgItem(hwnd,IDC_COMBO1);
    ComboBox_InsertString(hwndcombo,-1,TEXT(str));
   }
   break;


  case IDC_DELETE:
   {
   // TCHAR NR[256];
    //GetDlgItemText(hwnd,IDC_EDIT1,NR,sizeof(NR));
    HWND hwndcombo = GetDlgItem(hwnd,IDC_COMBO1);
      int id_number =  ComboBox_GetCurSel(hwndcombo);
    ComboBox_DeleteString(hwndcombo,id_number);
   }
        break;


  case IDC_SEARCH:
   {
    TCHAR NR_SEARCH[256];
    GetDlgItemText(hwnd,IDC_EDIT1,NR_SEARCH,sizeof(NR_SEARCH));
    HWND hwndcombo = GetDlgItem(hwnd,IDC_COMBO1);
    int count = ComboBox_GetCount(hwndcombo);
    TCHAR NR_TEMP[256]; 
    bool  flag = 0;
    for(int j=0;j<count;j++)
    {
    ComboBox_GetLBText(hwndcombo,j,NR_TEMP);
    //MessageBox(hwnd,TEXT(NR_TEMP),TEXT("提示"),MB_OK);
        if(strcmp(NR_TEMP,NR_SEARCH)==0)
     {
           ComboBox_SetCurSel(hwndcombo,j); 
        flag =1;
     }
         
                     if((j==(count-1))&&(flag==0))
      {  
       
        MessageBox(hwnd,TEXT("没有查找到当前内容项"),TEXT("温馨提示"),MB_OK|MB_ICONINFORMATION);
      }
     
    }
   }
   break;


        default:
  break;
    }
}


后来又增加了一个全部删除按钮,如下代码:


 case IDC_DELETEALL:
   {
    HWND hwndcombo = GetDlgItem(hwnd,IDC_COMBO1);
    int number = ComboBox_GetCount(hwndcombo);
    for(int k=0 ;k<number;k++)
    {
       ComboBox_DeleteString(hwndcombo,0);  //始终删除首行,0不可换成K,不然不能全部删除!!
   


    }
   }
  break;


如果将删除按钮的内容添加到文本框,并换行显示出来,代码如下:


  case IDC_DELETE:
   {
    HWND hwndcombo = GetDlgItem(hwnd,IDC_COMBO1);
      int id_number =  ComboBox_GetCurSel(hwndcombo);


    //将删除的内容显示在文本框IDC_EDIT1中
    TCHAR DSTR[256],OLDSTR[256],TEMP1[256];
          //提取已经添加到IDC_EDIT1中的文本行,便于换行添加
             ComboBox_GetLBText(hwndcombo,id_number,DSTR); //提取ComboBox 当前内容?????不能提未选择项???
    GetDlgItemText(hwnd,IDC_EDIT1,OLDSTR,sizeof(OLDSTR)); //提取文本框的内容
    if (OLDSTR[0]=='\0' ||OLDSTR[0]==' ')   //判断文本框是否为空,以免加入空行
    {
    SetDlgItemText(hwnd,IDC_EDIT1,DSTR);
    }
    else
    {
             sprintf(TEMP1,"%s\r\n%s",OLDSTR,DSTR); //换行合并 
    SetDlgItemText(hwnd,IDC_EDIT1,TEMP1);
    }
    //删除当前行
              ComboBox_DeleteString(hwndcombo,id_number);
   }
        break;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值