📄 listview.c
字号:
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 + -