📄 phonebook.c
字号:
hListView = GetDlgItem (hDlg, IDC_LISTVIEW);
switch (message)
{
case MSG_INITDIALOG:
{
SetWindowFont(GetDlgItem(hDlg, IDC_TITLE), edit_font);
SetWindowElementColorEx(GetDlgItem(hDlg, IDC_TITLE), FGC_CONTROL_NORMAL, PIXEL_lightwhite);
SetWindowFont(GetDlgItem(hDlg, IDC_LISTVIEW), edit_font);
SendMessage (hListView, LVM_SETHEADHEIGHT, 48, 0);
for (i = 0; i <= 2; i++)
{
lvcol.nCols = i;
lvcol.pszHeadText =(char *)fh_gettext(captionPhoneBookMain[i]);
lvcol.width = 75*SCALE_VALUE;
lvcol.pfnCompare = NULL;
lvcol.colFlags = LVHF_CENTERALIGN; /*Modify by jchcao*/
;
SendMessage (hListView, LVM_ADDCOLUMN, 0, (LPARAM) &lvcol);
}
lvcol.nCols = i;
lvcol.pszHeadText =(char *)fh_gettext(captionPhoneBookMain[i]);
lvcol.width = 130*SCALE_VALUE;
lvcol.pfnCompare = NULL;
lvcol.colFlags = LVHF_CENTERALIGN; /*Modify by jchcao*/
SendMessage (hListView, LVM_ADDCOLUMN, 0, (LPARAM) &lvcol);
// memset(phonenumber,0,32);
if (g_pdb_addr==NULL)
{
addr_db_init();
}
g_cur_record = 0;
//switch_from_pim_to_csv();
showAddrlist();
#if 0
if (1 == from_dial)
{
if (g_records > 0)
{
wndinfo->button_info[0].status = BT_STATUS_DIS;
wndinfo->button_info[1].status = BT_STATUS_DIS;
wndinfo->button_info[2].status = BT_STATUS_DEF;
wndinfo->button_info[3].status = BT_STATUS_DEF;
SetFocus(hListView);
SendMessage (hListView, LVM_SELECTITEM, g_cur_record, 0);
exit_edit=0;
}
else
{
wndinfo->button_info[0].status = BT_STATUS_DIS;
wndinfo->button_info[1].status = BT_STATUS_SEL;
wndinfo->button_info[2].status = BT_STATUS_DIS;
wndinfo->button_info[3].status = BT_STATUS_DIS;
}
//old_g_phone_numdlg_window_created = g_phone_numdlg_window_created;
//g_phone_numdlg_window_created = hDlg;
}
else
{
#endif
if (g_records <= 0)/*如没记录屏蔽掉Edit、Delete和Find按钮*/
{
wndinfo->button_info[0].status = BT_STATUS_DIS;
wndinfo->button_info[1].status = BT_STATUS_SEL;
wndinfo->button_info[2].status = BT_STATUS_DIS;
wndinfo->button_info[3].status = BT_STATUS_DIS;
}
else
{
SetFocus(hListView);
SendMessage (hListView, LVM_SELECTITEM, g_cur_record, 0);
exit_edit=0;
}
// }
if (save_record)
{
SendMessage(hDlg, MSG_COMMAND, 1, 0); /*1 添加*/
}
disp_record_info(hDlg);
return 1;
}
case MSG_KEYDOWN:
{
switch ( wParam )
{
case SCANCODE_ESCAPE:
SendMessage(hDlg, MSG_CLOSE, 0, 0);
return 0;
case SCANCODE_CURSORBLOCKUP:
{
if (exit_edit == 0) /*没退出*/
{
if (--g_cur_record < 0)
g_cur_record = 0;
}
else
{
if (g_records > 0)
{
SetFocus(hListView);
SendMessage (hListView, LVM_SELECTITEM, g_cur_record, 0);
}
else
{
return 0;
}
}
}
break;
case SCANCODE_CURSORBLOCKDOWN:
{
if (exit_edit == 0) /*没退出*/
{
if ( ++g_cur_record >= g_records )
g_cur_record = g_records - 1;
//printf("up---- g_cur_record=%2d\n",g_cur_record);
break;
}
else
{
return 0;
}
}
break;
case SCANCODE_CURSORBLOCKRIGHT:
case SCANCODE_CURSORBLOCKLEFT:
{
if (exit_edit == 0) /*没退出*/
{
showDetailRecord( hDlg, g_cur_record);
return 0;
}
}
break;
case SCANCODE_ENTER:
{
if (exit_edit == 0)
{
if (1 == from_dial)
wndinfo->button_info[3].status = BT_STATUS_SEL;
else
wndinfo->button_info[0].status = BT_STATUS_SEL;
SetFocus(GetDlgItem(hDlg, IDC_HIDE));
InvalidateRect(hDlg, &button_rect_pb, TRUE);
break;
}
}
break;
case SCANCODE_F1:
/*if (1 == from_dial)
break;*/
SendMessage(hDlg, MSG_COMMAND, 0, 0); /*1 编辑*/
break;
case SCANCODE_F2:
/*if (1 == from_dial)
break;*/
SendMessage(hDlg, MSG_COMMAND, 1, 0); /*2 添加*/
break;
case SCANCODE_F3:
SendMessage(hDlg, MSG_COMMAND, 2, 0); /*3 查找*/
break;
case SCANCODE_F4:
SendMessage(hDlg, MSG_COMMAND, 3, 0); /*4 删除或呼叫*/
break;
case SCANCODE_F5:
{
int ret;
if (g_records > 0)
{
ret = phoneCallRecord( hDlg, g_cur_record);
if (TRUE == ret)
{
ret_flag = TRUE;
SendMessage(hDlg, MSG_CLOSE, 0, 0);
}
}
return;
}
default:
return 0;
}
break;
}
case MSG_COMMAND:
switch (wParam)
{
case 0: /*编辑记录*/
if (BT_STATUS_DIS == wndinfo->button_info[0].status)
break;
else
{
edit_PhoneBook_Dialog(hDlg,g_cur_record);
showAddrlist();
SetFocus(hListView);
SendMessage (hListView, LVM_CHOOSEITEM, g_cur_record, 0);
exit_edit=0;
for (i=0; i<BUTTON_NUM; i++)
wndinfo->button_info[i].status = BT_STATUS_DEF;
InvalidateRect(hDlg, &button_rect_pb, TRUE);
}
break;
case 1: /*添加*/
{
int ret;
if (g_records >= MAX_ADDR_RECORD_NUM)
{
NotifyData nodate;
nodate.title =(char *)fh_gettext("Add Record");
nodate.content =(char *)fh_gettext("\r\nPhone Book Full!");
nodate.wndtype = NT_USETIMER;
nodate.okflag = 0;
create_notify_window(hDlg, &nodate, default_notify_proc);
break;
}
ret = add_PhoneBook_Dialog(hDlg);
//g_cur_record = 0;
showAddrlist();
if (g_records>0)
{
wndinfo->button_info[0].status = BT_STATUS_DEF; //edit
wndinfo->button_info[1].status = BT_STATUS_DEF; //add
wndinfo->button_info[2].status = BT_STATUS_DEF; //del
wndinfo->button_info[3].status = BT_STATUS_DEF; //find
InvalidateRect(hDlg, &button_rect_pb, TRUE);
SetFocus(hListView);
if(ret <= g_cur_record)
SendMessage (hListView, LVM_CHOOSEITEM, g_cur_record+1, 0);
else
SendMessage (hListView, LVM_CHOOSEITEM, g_cur_record, 0);
exit_edit=0;
}
else
{
wndinfo->button_info[0].status = BT_STATUS_DIS; //edit
wndinfo->button_info[1].status = BT_STATUS_SEL; //add
wndinfo->button_info[2].status = BT_STATUS_DIS; //del
wndinfo->button_info[3].status = BT_STATUS_DIS; //find
InvalidateRect(hDlg, &button_rect_pb, TRUE);
exit_edit=1;
}
disp_record_info(hDlg);
break;
}
case 2: /*查找*/
if (BT_STATUS_DIS == wndinfo->button_info[2].status)
break;
else
{
int i=0;
i=find_PhoneBook_Dialog(hDlg);
if (i!= -1)
g_cur_record=i;
showAddrlist();
SetFocus(hListView);
SendMessage (hListView, LVM_CHOOSEITEM, g_cur_record, 0);
for (i=0; i<BUTTON_NUM; i++)
wndinfo->button_info[i].status = BT_STATUS_DEF;
InvalidateRect(hDlg, &button_rect_pb, TRUE);
}
disp_record_info(hDlg);
break;
case 3:
#if 0
if (1 == from_dial) /* 呼叫 */
{
int ret;
if (g_records > 0)
{
ret = phoneCallRecord( hDlg, g_cur_record);
if (TRUE == ret)
{
ret_flag = TRUE;
SendMessage(hDlg, MSG_CLOSE, 0, 0);
}
}
return;
}
else /* 删除 */
{
#endif
if (BT_STATUS_DIS == wndinfo->button_info[3].status)
break;
else
{
del_PhoneBook_Dialog(hDlg, g_cur_record);
if (0 !=g_cur_record)
{
if (g_cur_record--<0)
g_cur_record=0;
}
showAddrlist();
if (g_records<=0)
{
exit_edit=1;
wndinfo->button_info[1].status = BT_STATUS_SEL;
wndinfo->button_info[2].status = BT_STATUS_DIS;
wndinfo->button_info[3].status = BT_STATUS_DIS;
wndinfo->button_info[0].status = BT_STATUS_DIS;
}
else
{
SetFocus(hListView);
SendMessage (hListView, LVM_SELECTITEM, g_cur_record, 0);
for (i=0; i<BUTTON_NUM; i++)
wndinfo->button_info[i].status = BT_STATUS_DEF;
exit_edit=0;
}
InvalidateRect(hDlg, &button_rect_pb, TRUE);
}
// }
break;
}
break;
case MSG_ERASEBKGND:
{
RECT rcTemp;
SETUP_BK_DC(hDlg, rcTemp);
SetBkMode(hdc, BM_TRANSPARENT);
FillBoxWithBitmap(hdc, 0, 0, MAINWINDOW_W, MAINWINDOW_H, &bmp_bk_setcommon);
FillBoxWithBitmap(hdc, TITLE_BMP_X, TITLE_BMP_Y, TITLE_BMP_W, TITLE_BMP_H, &pb_bmp_Title);
RELEASE_BK_DC();
break;
}
case MSG_CLOSE:
{
EndDialog (hDlg, 0);
return 0;
}
}
return default_appdlg_proc(hDlg, message, wParam, lParam, wndinfo);
}
int phoneBook(HWND hDlg)
{
WndData phbook;
int i;
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_def[0], "common/edit_def.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_sel[0], "common/edit_sel.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_dis[0], "common/edit_dis.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_def[1], "common/add_def.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_sel[1], "common/add_sel.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_dis[1], "common/add_dis.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_def[2], "common/find_def.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_sel[2], "common/find_sel.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_dis[2], "common/find_dis.gif");
#if 0
if (1 == from_dial)
{
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_def[3], "common/call_def.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_sel[3], "common/call_sel.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_dis[3], "common/call_dis.gif");
}
else
{
#endif
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_def[3], "common/del_def.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_sel[3], "common/del_sel.gif");
ud_LoadBitmap(language,HDC_SCREEN, &bmp_button_dis[3], "common/del_dis.gif");
// }
LoadBitmapFromFile (HDC_SCREEN, &pb_bmp_Title, "/resources_public/common/pb_title.gif");
phbook.bgbmp=&bmp_bk_toolcommon;
phbook.button_num=BUTTON_NUM;
phbook.button_pos_y=POS_BUTTON_Y;
phbook.button_space=POS_BUTTON_SPACE;
phbook.title=(char *)fh_gettext("Phonebook");
phbook.button_style=BT_STYLE_CENTER;
phbook.button_info=(Button_Info*)malloc(sizeof(Button_Info)*BUTTON_NUM);
switch_from_cvs_to_pim(hDlg);
for (i=0; i< BUTTON_NUM; i++)
{
phbook.button_info[i].id = i;
phbook.button_info[i].status = BT_STATUS_DEF;
phbook.button_info[i].bmp[0] = &bmp_button_def[i];
phbook.button_info[i].bmp[1] = &bmp_button_sel[i];
phbook.button_info[i].bmp[2] = &bmp_button_dis[i];
}
phoneBookMode.dwAddData = (DWORD) &phbook;
phoneBookInit[0].caption = phbook.title;
phoneBookMode.controls = phoneBookInit;
Create_app_main_win(hDlg, &phoneBookMode,phoneBookPro1, &phbook);
free(phbook.button_info);
for (i=0;i< BUTTON_NUM;i++)
{
UnloadBitmap(&bmp_button_def[i]);
UnloadBitmap(&bmp_button_sel[i]);
UnloadBitmap(&bmp_button_dis[i]);
}
UnloadBitmap(&pb_bmp_Title);
// switch_from_pim_to_csv();
if (g_pdb_addr)
addr_db_deinit();
exit_edit=1;
return ret_flag;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -