📄 telbook.c
字号:
/*********************************************************************
功能:通讯录.联系人的添加、查找(模糊、精确查找)、
修改、删除、打电话、浏览SIM卡
日期:2008 年7月 16日
作者:陈兴旺
**********************************************************************/
#include "telbook.h"
#include "../tel/call_time.h"//////////////////////////////////////
#include "../tel/tel.h"/////////////////////////
#include "../mybuttonreg.h"
/*static BITMAP alter_pushed;
static BITMAP alter_unpushed;
static BITMAP alter_mousemove;
static BITMAP return_pushed;
static BITMAP return_unpushed;
static BITMAP return_mousemove;
static BITMAP search_pushed;
static BITMAP search_unpushed;
static BITMAP search_mousemove;
static BITMAP dial_pushed;
static BITMAP dial_unpushed;
static BITMAP dial_mousemove;
static BITMAP sim_pushed;
static BITMAP sim_unpushed;
static BITMAP sim_mousemove;
static BITMAP delete_pushed;
static BITMAP delete_unpushed;
static BITMAP delete_mousemove;
static BITMAP add_pushed;
static BITMAP add_unpushed;
static BITMAP add_mousemove;
*/
static HWND hCtrl1;
static HWND hCtrl2;
static HWND hCtrl3;
static HWND hCtrl4;
static HWND hCtrl5;
static HWND hCtrl6;
static HWND hCtrl7;
static HWND hMainWnd;
void parse(char *list)//字符串分割成姓名和号码
{
int i,j,k=0,len=strlen(list);
for(i=0;i<len,list[i]!=' ';i++)
mod_name[i]=list[i];
mod_name[i]='\0';
while(list[i]==' ') i++;
for(j=i;j<len,list[j]!='\0';j++)
{mod_num[k]=list[j];
k++;
}
mod_num[k]='\0';
}
static void search_proc (HWND hwnd, int id, int nc, DWORD add_data)
{
if (id == IDM_NAME&& nc == EN_CHANGE)
GetWindowText (hwnd, search_name, 30);
if (id == IDM_PHONE&& nc == EN_CHANGE)
GetWindowText (hwnd, search_num, 20);
}
static void list_proc (HWND hwnd, int id, int nc, DWORD add_data)
{
int index;
if (id == IDM_LIST&& nc == LBN_SELCHANGE)
{
index= SendMessage (hwnd, LB_GETCURSEL, 0, 0) ;
SendMessage (hwnd, LB_GETTEXT, index, (LPARAM)list) ;
parse(list);
SetWindowText (GetDlgItem (GetParent(hwnd), IDM_NAME), mod_name);
SetWindowText (GetDlgItem (GetParent(hwnd), IDM_PHONE), mod_num);
}
}
void deleteFromFile()
{
FILE *fp;
Note item[100];
int i=0,j;
if((fp=fopen("data/phonebook.dat","r"))==NULL)
{
printf("open file error\n");
exit(1);
}
while(!feof(fp))
if(fread(&item[i],sizeof(Note),1,fp)==1)
i++;
fclose(fp);
if((fp=fopen("data/phonebook.dat","w+"))==NULL)
{
printf("open file error\n");
exit(1);
}
for(j=0;j<i;j++)
{
if(strcmp(item[j].name,mod_name)!=0&&strcmp(item[j].phone,mod_num)!=0)
fwrite(&item[j],sizeof(Note),1,fp);
}
fclose(fp);
}
void createwin(HWND hwnd)
{
CreateWindowEx(CTRL_EDIT, NULL,WS_VISIBLE | WS_TABSTOP | WS_BORDER,WS_EX_TRANSPARENT, IDM_NAME,40, 5, 100, 25, hwnd, 0);
CreateWindowEx(CTRL_EDIT, NULL,WS_VISIBLE | WS_TABSTOP | WS_BORDER,WS_EX_TRANSPARENT, IDM_PHONE,40, 35, 140, 25, hwnd, 0);
CreateWindowEx(CTRL_LISTBOX, NULL,WS_VISIBLE | WS_BORDER|LBS_NOTIFY | WS_VSCROLL|LBS_SORT,WS_EX_TRANSPARENT,IDM_LIST,15, 65, 200, 95, hwnd, 0);
//hCtrl1 = CreateWindowEx(CTRL_MYBUTTON, "打电话",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_CALL,150, 5, 65, 25,hwnd, (DWORD)&dial_unpushed);
hCtrl1 =CreateWindow ("button",
"打电话",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_CALL,
150, 5, 65, 25,hwnd, 0);
// CreateWindowEx(CTRL_MYBUTTON, "添加",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_ADD,245, 5, 65, 30,hwnd, (DWORD)&add_unpushed);
hCtrl2 =CreateWindow ("button",
"添加",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_ADD,
245, 5, 65, 30, hwnd, 0);
//hCtrl3 = CreateWindowEx(CTRL_MYBUTTON, "查找",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_SEARCH,245, 45, 65, 30,hwnd, (DWORD)&search_unpushed);
hCtrl3 =CreateWindow ("button",
"查找",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_SEARCH,
245, 45, 65, 30, hwnd, 0);
//hCtrl4 = CreateWindowEx(CTRL_MYBUTTON, "修改",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_MODIFY,245, 85, 65, 30,hwnd, (DWORD)&alter_unpushed);
hCtrl4 =CreateWindow ("button",
"修改",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_MODIFY,
245, 85, 65, 30, hwnd, 0);
//hCtrl5 = CreateWindowEx(CTRL_MYBUTTON, "删除",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_DELETE,245, 125, 65, 30,hwnd, (DWORD)&delete_unpushed);
hCtrl5 =CreateWindow ("button",
"删除",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_DELETE,
245, 125, 65, 30, hwnd, 0);
//hCtrl6 = CreateWindowEx(CTRL_MYBUTTON, "返回",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_RETURN,245, 160, 65, 30,hwnd, (DWORD)&return_unpushed);
hCtrl6 =CreateWindow ("button",
"返回",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_RETURN,
245, 160, 65, 30,hwnd, 0);
//hCtrl7 = CreateWindowEx(CTRL_MYBUTTON, "浏览SIM卡",WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDM_BROWSE,15, 165, 90, 25,hwnd, (DWORD)&sim_unpushed);
hCtrl7 =CreateWindow ("button",
"浏览SIM卡",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDM_BROWSE,
15, 165, 90, 25,hwnd, 0);
}
/*static void notify_proc (HWND hwnd, int id, int nc, DWORD add_data)
{
int i=0;
time_t now;
char time_buf[50];
struct tm* timenow;
char *wday[]={"Sun", "Mon", "Tue" ,"Wed" ,"Thu" ,"Fri" ,"Sat"};
FILE *DTRfp;
//printf("hwnd=%d\n", hwnd);
if ( hwnd == hCtrl1 && nc == LBN_CLICKED)
{
SetWindowAdditionalData(hwnd, (DWORD)&dial_pushed);
}
if(hwnd == hCtrl2 && nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&add_pushed);
}
if(hwnd == hCtrl3 && nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&search_pushed);
}
if(hwnd == hCtrl4 && nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&alter_pushed);
}
if(hwnd == hCtrl5 && nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&delete_pushed);
}
if(hwnd == hCtrl6 && nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&return_pushed);
}
if(hwnd == hCtrl7 && nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&sim_pushed);
}
if ( hwnd == hCtrl1 && nc == LBN_CLICKED)
{
//SetWindowAdditionalData(hwnd, (DWORD)&dial_unpushed);
GetWindowText(GetDlgItem (hMainWnd, IDM_PHONE),buff_num, 20);
if(CALL_ANS == 0 )
{
printf("%d\n",DTRfp = fopen("data/telalready.txt","a+"));
gprs_call(buff_num, strlen(buff_num));
strcpy(CI.tel_number,buff_num);
printf("%s\n",CI.tel_number);
printf("time\n");
time(&now);
timenow=localtime(&now);
printf("%d\n",timenow->tm_wday);
sprintf(time_buf,"%d-%d-%d %d:%d:%d %s",
timenow->tm_year+1900,timenow->tm_mon+1,timenow->tm_mday,
timenow->tm_hour,timenow->tm_min,timenow->tm_sec,wday[timenow->tm_wday]);
strcpy(CI.tel_time,time_buf);
printf("tel_time=%s",CI.tel_time);
fwrite(&CI, sizeof(_CALLINFO), 1, DTRfp);
fclose(DTRfp);
printf("tel_num = %s",buff_num);
CALL_NOCARRIER = 1;
CALL_ANS = 1;
AnsweringDialog(hMainWnd);
}
}
if(id == IDM_ADD && nc == BN_CLICKED)
{
//SetWindowAdditionalData(hwnd, (DWORD)&add_unpushed);
printf("1111111111111111111111111\n\n");
addItem(hMainWnd);
print(hMainWnd,IDM_LIST);
}
if(hwnd == hCtrl3 && nc == MYBUTTON_UNPUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&search_unpushed);
search(hMainWnd,IDM_LIST,search_name,search_num);
}
if(hwnd == hCtrl4 && nc == MYBUTTON_UNPUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&alter_unpushed);
if(strcmp(list,"")==0)
{
MessageBox(hMainWnd,"请选择一位要修改的联系人","确定",MB_OK|MB_BASEDONPARENT);
return;
}
parse(list);
modify(hMainWnd,mod_name,mod_num);
print(hMainWnd,IDM_LIST);
}
if(hwnd == hCtrl5 && nc == MYBUTTON_UNPUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&delete_unpushed);
if(strcmp(list,"")==0)
{
MessageBox(hMainWnd,"请选择一位要删除的联系人","确定",MB_OK|MB_BASEDONPARENT);
return;
}
parse(list);
deleteFromFile();
MessageBox(hMainWnd,"删除成功!","确定",MB_OK|MB_BASEDONPARENT);
strcpy(search_name,"");
strcpy(search_num,"");
SetWindowText (GetDlgItem (hMainWnd, IDM_NAME), "");
SetWindowText (GetDlgItem (hMainWnd, IDM_PHONE), "");
print(hMainWnd,IDM_LIST);
}
if(hwnd == hCtrl6 && nc == MYBUTTON_UNPUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&return_unpushed);
SendNotifyMessage(hMainWnd,MSG_CLOSE,0,0);
}
if(hwnd == hCtrl7 && nc == MYBUTTON_UNPUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&sim_unpushed);
tty_writecmd("at+cpbr=?",strlen( "at+cpbr=?"));
}
if( hwnd == hCtrl1 && nc == MYBUTTON_MOUSEMOVE)
{
SetWindowAdditionalData(hwnd, (DWORD)&dial_mousemove);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -