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

📄 phonebook.c

📁 MINIGUI code MINIGUI code
💻 C
📖 第 1 页 / 共 2 页
字号:
    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 + -