⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listview.c

📁 一个电话本的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	    			lvcol.pfnCompare = NULL;	    			lvcol.colFlags = 0;            			SendMessage (hListView, LVM_ADDCOLUMN, 0, (LPARAM) &lvcol);			}			#if 0 			for(i = 1; i <= PERSON_NUM; i++) 			{            			item.nItem = i;            			SendMessage (hListView, LVM_ADDITEM, 0, (LPARAM) & item);				for (j = 1; j <= 6; j++) 				{                			subdata.nItem = i;                			subdata.subItem = j;		    			subdata.pszText = info[i-1].list[j-1];		    			subdata.nTextColor = PIXEL_red;					subdata.flags = 0;					subdata.image = 0;                			SendMessage (hListView, LVM_SETSUBITEM, 0, (LPARAM) & subdata);	    			}								}			#endif			#if 1 			section_num = getsection_num("./custom.ini");			#if 1 			for (i = 1;i <= section_num;i++)			{            			item.nItem = i;            			SendMessage (hListView, LVM_ADDITEM, 0, (LPARAM) & item);				for (j = 1;j <= 6;j++)				{						char section[10];					sprintf(section,"%d",i);					subdata.nItem = i;					subdata.subItem = j;					getiniitem("./custom.ini",section,caption[j-1],info1.list[j-1]);					subdata.pszText = info1.list[j-1];                			SendMessage (hListView, LVM_SETSUBITEM,0, (LPARAM) & subdata);				}							}			#endif			#endif      		}      		break;    		case MSG_COMMAND:    		{			int id = LOWORD (wParam);/*****************************************************************以下为在LISTVIEW中查找一个列表项,为简单起见,本程序只按姓名查找 *		****************************************************************/						if (id == IDC_CTRL_FIND) 			{				LVFINDINFO find_info;				int nItem;				char buffer1[100];				char *text[1];				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT),buffer1,100);				text[0] = buffer1;				find_info.iStart = 0;				find_info.flags = LVFF_TEXT;				find_info.nCols = 1;				find_info.pszInfo = text; 				nItem = SendMessage (hListView, LVM_FINDITEM, 0, (LPARAM) &find_info);				SendMessage (hListView, LVM_CHOOSEITEM, nItem, 0);			#if 0	    			average = average / (PERSON_NUM * SUB_NUM);	    			sprintf (buff, "%4.1f", average);	    			SendDlgItemMessage (hDlg, IDC_CTRL1, MSG_SETTEXT, 0, (LPARAM)buff);			#endif			}/*****************************************************************************以下为保存一个LISTVIEW数据在一个文件中,因为比较简单,用一个INI文件进行了存储**INI文件读取文件用到头文件inifile.h                                         *****************************************************************************/			if (id == IDC_CTRL_SAVE)			{				int i, j, w, count;				LVSUBITEM subdata;				LVITEM item;				remove("./custom.ini");				count = SendMessage (hListView,LVM_GETITEMCOUNT,0,0);				for (i = 1;i <= count;i++)				{					for (j = 1;j <= 6;j++)					{							char buff[100];						subdata.nItem = i;						subdata.subItem = j;						subdata.pszText = buff;                				SendMessage (hListView, LVM_GETSUBITEMTEXT,0, (LPARAM) & subdata);						sprintf(info1.list[j-1] ,"%s" ,subdata.pszText);						sprintf(buff,"%d",i);						w = setiniitem("./custom.ini",buff,caption[j-1],info1.list[j-1]);					}									}								if(w == 1)				{					MessageBox(hDlg,"保存文件失败,请重试!","警告",MB_OK);				}				else				{					MessageBox(hDlg,"保存文件成功!","祝贺您",MB_OK);				}			}/****************************************************************************************以下为完成对LISTVIEW中的客户信息进行修改的功能,当用户在修改完成后,会反映在列表型控件中**但是只有当用户点保存后才对这些改动进行真正的保存操作                                  ****************************************************************************************/			if(id == IDC_CTRL_MODI)			{				int nItemSelected,i,j;				LVSUBITEM subdata;				char buff[100];				nItemSelected = SendMessage (hListView,LVM_GETSELECTEDITEM,0,0);								if(nItemSelected == 0)				{					MessageBox(hDlg,"请你选择要修改哪一行!","提示",MB_OK);				}				else				{					for(i = 1;i <= 6;i++)					{						subdata.nItem = nItemSelected;						subdata.subItem = i;						subdata.flags = 0;						subdata.pszText = buff;						subdata.nTextColor = 0;						subdata.nTextMax = 100;						//info1.list[i-1] = (char*) malloc(100);						SendMessage (hListView, LVM_GETSUBITEMTEXT, 0, (LPARAM) &subdata);						strcpy(info1.list[i-1],subdata.pszText);						//info1.list[i-1] = subdata.pszText;					}					DlgModify.controls = CtrlModify;					DialogBoxIndirectParam (&DlgModify, hDlg, Modify_Proc,(LPARAM) &info1);					for(i=1;i<7;i++)					{						subdata.nItem = nItemSelected;						subdata.subItem = i;						subdata.pszText = info1.list[i-1];		    				subdata.nTextColor = PIXEL_red;						subdata.flags = 0;						subdata.image = 0;                				SendMessage (hListView, LVM_SETSUBITEM, 0, (LPARAM) & subdata);					}														}							}/*************************************************************************************以下完成对于客户信息的删除功能,同样在点保存以前,后有的删除只是形式上的删除         *************************************************************************************/			if(id == IDC_CTRL_DEL)			{				int nItemSelected;				nItemSelected = SendMessage (hListView,LVM_GETSELECTEDITEM,0,0);				if(nItemSelected== 0)				{					MessageBox(hDlg,"请你选择你要删除哪一行!","提示",MB_OK);				}				else				{					if(IDYES == MessageBox(hDlg,"你确定要删除这一行吗 ?","提示",MB_YESNO))					{						SendMessage(hListView,LVM_DELITEM,nItemSelected,0);						}									}			}/******************************************************************************************以下完成对天客户的添加功能,同样,在用户点保存以前,所有的添加操作只是形式上的,没真正保存  ******************************************************************************************/			if(id == IDC_CTRL_ADD)			{				DlgModify.controls = CtrlModify;				id = DialogBoxIndirectParam (&DlgModify, hDlg, Add_Proc,(LPARAM) lParam);				#if 1 				int j,row_count;				LVSUBITEM subdata;				LVITEM item1;								row_count = SendMessage (hListView,LVM_GETITEMCOUNT,0,0);				item1.nItem = row_count + 1;	     			SendMessage (hListView, LVM_ADDITEM, 0, (LPARAM) & item1);				for (j = 1; j <= 6; j++) 				{                			subdata.nItem = row_count + 1;                			subdata.subItem = j;		    			subdata.pszText = info1.list[j-1];		    			subdata.nTextColor = PIXEL_red;					subdata.flags = 0;					subdata.image = 0;                			SendMessage (hListView, LVM_SETSUBITEM, 0, (LPARAM) & subdata);	    			}				#endif								}    		}    		break;  		case MSG_CLOSE:    		{	   		 EndDialog (hDlg, 0);    		}    		break;	}	return DefaultDialogProc (hDlg, message, wParam, lParam);}static DLGTEMPLATE DlgCustom ={	WS_BORDER | WS_CAPTION ,	WS_EX_NONE,	80, 80, 560, 420,	"客户关系管理系统",	0, 0,	8, NULL,	0};/*************************************************************以下为主窗口的所有控件                                     *************************************************************/static CTRLDATA CtrlCustom[] ={	{        	"listview",        	WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,         	10, 10, 535, 340,        	IDC_LISTVIEW,        	"客户信息",        	0    	},		{		"static",		SS_SIMPLE | WS_VISIBLE ,		20,365,40,25,		IDC_CTRL_STATIC,		"姓名:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	60, 360, 60, 25,        	IDC_CTRL_EDIT,        	"",        	0    	},    	{        	"button",        	WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,         	140, 360, 60, 25,        	IDC_CTRL_FIND,        	"查找",        	0    	},	{		"button",		WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,		220,360,60,25,		IDC_CTRL_ADD,		"添加",		0	},	{		"button",		WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,		300,360,60,25,		IDC_CTRL_DEL,		"删除",		0	},	{		"button",		WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,		380,360,60,25,		IDC_CTRL_MODI,		"修改",		0	},	{		"button",		WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,		460,360,60,25,		IDC_CTRL_SAVE,		"保存",		0	},	};/******************************************************以下为主调函数                                      ******************************************************/int MiniGUIMain (int argc, const char* argv[]){#ifdef _LITE_VERSION	SetDesktopRect(0, 0, 1024, 768);#endif    	if (!InitMiniGUIExt()) 	{        	return 2;    	}	DlgCustom.controls = CtrlCustom;	DialogBoxIndirectParam (&DlgCustom, HWND_DESKTOP, Custom_Proc, 0L);	MiniGUIExtCleanUp ();	return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -