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;
***注释***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;