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

📄 listview.c

📁 一个电话本的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/*** $Id: listview.c,v 1.3 2003/06/13 06:50:39 weiym Exp $**** listview.c: Sample program for MiniGUI Programming Guide**      Usage of LISTVIEW control.**** Copyright (C) 2003 Feynman Software.**** License: GPL*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/stat.h>#include <sys/types.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include <minigui/mgext.h>#include "inifile.h"#include "listview.h"#define IDC_LISTVIEW		10#define IDC_CTRL_EDIT   	20#define IDC_CTRL_FIND   	30#define IDC_CTRL_DEL		40#define IDC_CTRL_MODI   	50#define IDC_CTRL_SAVE		60#define IDC_CTRL_MODI_OK   	70#define IDC_CTRL_MODI_CANCLE    80#define IDC_CTRL_STATIC		90#define	IDC_CTRL_ADD		100#define IDC_CTRL_STATIC_NAME	110#define IDC_CTRL_STATIC_TELE	120#define IDC_CTRL_STATIC_MOBILE	130#define IDC_CTRL_STATIC_EMAIL	140#define IDC_CTRL_STATIC_ADDR	150#define IDC_CTRL_STATIC_CORP	160#define IDC_CTRL_EDIT_NAME   	170#define IDC_CTRL_EDIT_TELE   	180#define IDC_CTRL_EDIT_MOBILE   	190#define IDC_CTRL_EDIT_EMAIL   	200#define IDC_CTRL_EDIT_ADDR   	210#define IDC_CTRL_EDIT_CORP   	220#define SUB_ITEM_NUM	6#define PERSON_NUM	4static char * caption [SUB_ITEM_NUM] ={	"姓名", "固定电话", "手机号","电子邮件","地址","公司"};typedef struct _CUST{   	char *list[6];} CUSTOM;		static CUSTOM info[PERSON_NUM] ={	{"张强", "85684458","13586874568","zhang@sina.com.cn","新华小区2号楼","太阳软件有限公司"},	{"王铮","45681247","13845672586","wang@163.com","保福寺南5号楼","IBM中国公司" },	{"黄亮", "78547825","13485691256","huang@gmail.com","农科院小区3号楼","微软亚洲研究院"},	{"秦天", "98564568","13765971245","qin@263.net","气象局小区8号楼","新开软件股份有限公司"}};static DLGTEMPLATE DlgModify ={	WS_BORDER | WS_CAPTION,	WS_EX_NONE,	180, 180, 380, 270,	"客户信息修改",	0, 0,	14, NULL,	0};struct _info {	char list[6][100];} info1;/**********************************************以下定义了修改以及添加客户信息窗口的所有控件**此控件为修改和添加窗体所共有                **********************************************/static CTRLDATA CtrlModify[] ={						{		"static",		SS_SIMPLE | WS_VISIBLE | SS_CENTER,		30,20,120,25,		IDC_CTRL_STATIC_NAME,		"姓          名:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	150, 20, 180, 25,        	IDC_CTRL_EDIT_NAME,        	"",        	0    	},	{		"static",		SS_SIMPLE | WS_VISIBLE ,		30,50,120,25,		IDC_CTRL_STATIC_TELE,		"固定电话:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	150, 50, 180, 25,        	IDC_CTRL_EDIT_TELE,        	"",        	0    	},	{		"static",		SS_SIMPLE | WS_VISIBLE ,		30,80,120,25,		IDC_CTRL_STATIC_MOBILE,		"手          机:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	150, 80, 180, 25,        	IDC_CTRL_EDIT_MOBILE,        	"",        	0    	},	{		"static",		SS_SIMPLE | WS_VISIBLE ,		30,110,120,25,		IDC_CTRL_STATIC_EMAIL,		"电子邮件:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	150, 110, 180, 25,        	IDC_CTRL_EDIT_EMAIL,        	"",        	0    	},			{		"static",		SS_SIMPLE | WS_VISIBLE ,		30,140,120,25,		IDC_CTRL_STATIC_ADDR,		"住          址:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	150, 140, 180, 25,        	IDC_CTRL_EDIT_ADDR,        	"",        	0    	},	{		"static",		SS_SIMPLE | WS_VISIBLE ,		30,170,120,25,		IDC_CTRL_STATIC_CORP,		"公          司:",		0	},		{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,         	150, 170, 180, 25,        	IDC_CTRL_EDIT_CORP,        	"",        	0    	},	{		"button",		WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,		30,205,80,25,		IDC_CTRL_MODI_OK,		"确  定",		0	},	{		"button",		WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,		270,205,80,25,		IDC_CTRL_MODI_CANCLE,		"取  消",		0	},		};/*****************************************************************************以下为修改客户信息的窗口消息处理函数                                       *****************************************************************************/static int Modify_Proc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){	struct _info * p = &info1;	switch(message)	{		case MSG_INITDIALOG:		{			int i;			SetWindowAdditionalData (hDlg,lParam);				p = (struct _info *) GetWindowAdditionalData (hDlg);			SetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_NAME),p->list[0]);			SetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_TELE),p->list[1]);			SetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_MOBILE),p->list[2]);			SetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_EMAIL),p->list[3]);			SetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_ADDR),p->list[4]);			SetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_CORP),p->list[5]);		}		break;		case MSG_CLOSE:		{			EndDialog(hDlg,0);		}		break;		case MSG_COMMAND:		{			int id = LOWORD (wParam);			int i;			if(id == IDC_CTRL_MODI_CANCLE)			{							EndDialog(hDlg,0);			}			if(id == IDC_CTRL_MODI_OK)			{				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_NAME),p->list[0],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_TELE),p->list[1],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_MOBILE),p->list[2],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_EMAIL),p->list[3],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_ADDR),p->list[4],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_CORP),p->list[5],100);				EndDialog(hDlg,0);			}		}		break;	}	return DefaultDialogProc (hDlg, message, wParam, lParam);}/**************************************************************************以下为添加客户信息窗口的消息处理函数                                    **************************************************************************/static int Add_Proc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){		switch(message)	{	case MSG_INITDIALOG:		{				SetWindowAdditionalData (hDlg,lParam);		}		break;				case MSG_COMMAND:		{			int i;			int id = LOWORD (wParam);			if(id == IDC_CTRL_MODI_OK)			{					for(i = 0;i < 6;i++ )				{					memset(info1.list[i],0,100);				}				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_NAME),info1.list[0],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_TELE),info1.list[1],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_MOBILE),info1.list[2],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_EMAIL),info1.list[3],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_ADDR),info1.list[4],100);				GetWindowText(GetDlgItem(hDlg,IDC_CTRL_EDIT_CORP),info1.list[5],100);				EndDialog(hDlg,wParam);							}			if(id == IDC_CTRL_MODI_CANCLE)			{				EndDialog(hDlg,0);			}		}		break;		case MSG_CLOSE:		{			EndDialog(hDlg,0);		}		}		return DefaultDialogProc (hDlg, message, wParam, lParam);}/*****************************************************************************以下为主窗口的消息处理函数,因为程序较小,所以没有用其它函数进行模块化处理   *****************************************************************************/static int Custom_Proc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){	HWND hListView;	hListView = GetDlgItem (hDlg, IDC_LISTVIEW);	switch (message)	{		case MSG_INITDIALOG:		{			int i, j,section_num;			LVSUBITEM subdata;			LVITEM item;			LVCOLUMN lvcol;			for(i = 1; i <= SUB_ITEM_NUM; i++) 			{				lvcol.nCols = i;	    			lvcol.pszHeadText = caption[i-1];	    			lvcol.width = 70+i*7;

⌨️ 快捷键说明

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