一个简单的城市管理系统(ComboBox控件的运用)

最近在看BlueCoder的博客专栏《Win32基础技术》,所以有一段时间没写关于控件的博客了,今天忽然想起来我曾经用两种控件分别实现过城市管理系统,我首先用了ComboBox控件,做完后过了一段时间我又用ListBox控件做了一个

废话不多说了,先来看看效果

程序界面                                                                      选择城市                                                            

一个简单的城市管理系统(ComboBox控件的运用)_第1张图片一个简单的城市管理系统(ComboBox控件的运用)_第2张图片


显示城市                                                                  增加城市

一个简单的城市管理系统(ComboBox控件的运用)_第3张图片        一个简单的城市管理系统(ComboBox控件的运用)_第4张图片


错误提示                                                                   警告提醒

一个简单的城市管理系统(ComboBox控件的运用)_第5张图片   一个简单的城市管理系统(ComboBox控件的运用)_第6张图片


在写代码前需要将程序搭成下图所示的界面

一个简单的城市管理系统(ComboBox控件的运用)_第7张图片


修改控件的ID

控件名称

控件的ID

ComboBox控件

IDC_COMBO1

城市显示框

IDC_SHOW

城市添加框

IDC_EDIT1

城市添加按钮

IDC_ADD

城市显示按钮

IDC_VIEW

城市删除按钮

IDC_DELETE

城市查找框

IDC_EDIT2

城市查找按钮

IDC_SEARCH


展示完功能后就开始写代码

这个程序中的最基本的功能是添加城市

添加城市到ComboBox控件中用ComboBox_InsertString函数

函数参数

 HWND hwndCtl,  ComboBox控件的句柄
  int index,             当前索引
  LPCSTR lpsz     ComboBox控件中添加的字符串


添加城市

	//得到ComboBox控件的句柄
	HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO1);

	//添加城市
	ComboBox_InsertString(hwndCombo1,-1,TEXT("北京市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("天津市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("上海市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("深圳市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("南京市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("广州市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("海口市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("南昌市"));
	ComboBox_InsertString(hwndCombo1,-1,TEXT("新余市"));


从添加框中添加城市

	//得到ComboBox控件的句柄
			HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO1);

			//得到编辑框中的字符串
			GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str));

			//字符串的大小
			int len = strlen(str);

			//当没输入添加的城市时
			if(0 == len)
			{
				MessageBox(hwnd,TEXT("请输入一个城市"),TEXT("提示"),MB_OK | MB_ICONEXCLAMATION);
			}
			else
			{
				//添加城市
				ComboBox_InsertString(hwndCombo1,-1,str);

				TCHAR cmd[256];

				wsprintf(cmd,"%s添加成功",str);

				MessageBox(hwnd,cmd,TEXT("提示"),MB_OK);
			}

删除城市

	//得到ComboBox控件的句柄
			HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO1);

			//得到城市的索引
			int CurSel = ComboBox_GetCurSel(hwndCombo1);

			if(-1== CurSel)//如果没选择城市
			{
				MessageBox(hwnd,TEXT("请选择一个需要删除的城市"),TEXT("提示"),MB_OK | MB_ICONEXCLAMATION);
			}
			else
			{
				TCHAR str1[256];
				TCHAR str2[256];

				//得到选定的城市
			    ComboBox_GetLBText(hwndCombo1,CurSel,str1);

				wsprintf(str2,"%s删除成功",str1);

				//删除城市
		    	ComboBox_DeleteString(hwndCombo1,CurSel);

				MessageBox(hwnd,str2,TEXT("提示"),MB_OK);
			}


查找城市

			TCHAR str1[256];
			TCHAR str2[256];

			//字符串清零
			ZeroMemory(str1,sizeof(str1));
			
			SetDlgItemText(hwnd,IDC_SHOW,TEXT(""));

			//得到ComboBox控件的句柄
			HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO1);

			//得到Combobox控件中有多少个城市
			int Count = ComboBox_GetCount(hwndCombo1);

			//得到对话框中的字符串
			GetDlgItemText(hwnd,IDC_EDIT2,str1,sizeof(str1));

			//得到字符串的大小
			int len = strlen(str1);

			int flag = 0;//标示查找

			if(0 == len)
			{
				MessageBox(hwnd,TEXT("请输入一个城市"),TEXT("提示"),MB_OK | MB_ICONEXCLAMATION);
			}
			else
			{
				for(int i = 0;i <Count ; i++)
				{
					ComboBox_GetLBText(hwndCombo1,i,str2);

					if(0 == strncmp(str1,str2,len))
					{
						flag = 1;//找到了

						//显示城市
						SetDlgItemText(hwnd,IDC_SHOW,str2);

						wsprintf(str1,"找到了%s",str2);

						MessageBox(hwnd,str1,TEXT("提示"),MB_OK);
					}
				}

				if(0 == flag)
				{
					MessageBox(hwnd,TEXT("没找到"),TEXT("提示"),MB_OK | MB_ICONERROR);
				}
			}


显示城市

		//得到ComboBox控件的句柄
				HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO1);

				//得到当前的索引
				int CurSel = ComboBox_GetCurSel(hwndCombo1);

				if(-1 == CurSel)
				{
					MessageBox(hwnd,TEXT("请选择一个城市"),TEXT("提示"),MB_OK | MB_ICONEXCLAMATION);
				}
				else
				{
					TCHAR str[256];

					//得到城市
					ComboBox_GetLBText(hwndCombo1,CurSel,str);

					TCHAR cmd[256];

					wsprintf(cmd,"你选择了%s",str);

					MessageBox(hwnd,cmd,TEXT("提示"),MB_OK);

					//在对话框中显示城市
					SetDlgItemText(hwnd,IDC_SHOW,str);
				}


通过上面的代码克制我在程序中还增加了错误验证和提示,这使得程序更有可行性


点击下载城市管理系统





你可能感兴趣的:(一个简单的城市管理系统(ComboBox控件的运用))