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

📄 pb_main.c

📁 基于minigui的智能手机pda源码
💻 C
字号:
#include "../sys_headfile.h"
#include "pb_main.h"
//#include "pb_app.h"//通讯录相关对话空函数
static HICON hIcon1,hIcon2;           /* 声明图标句柄 */
static HMENU phoneBookSetMenu(void)
{
     HMENU hmnu;
     MENUITEMINFO mii;
  //   hmnu=CreateMenu();
     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type= 	MFT_SEPARATOR;
     mii.id=0;
     mii.typedata=(DWORD)"";
     hmnu = CreatePopupMenu(&mii);

     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_ADD;
     mii.typedata=(DWORD)"添加";
     InsertMenuItem(hmnu,0,TRUE,&mii);
	 
     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_DELETE;
     mii.typedata=(DWORD)"删除";
     InsertMenuItem(hmnu,1,TRUE,&mii);

     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_EDIT;
     mii.typedata=(DWORD)"修改";
     InsertMenuItem(hmnu,2,TRUE,&mii);

     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_SEARCH;
     mii.typedata=(DWORD)"查找";
     InsertMenuItem(hmnu,3,TRUE,&mii);

     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_RETURN;
     mii.typedata=(DWORD)"返回";
     InsertMenuItem(hmnu,4,TRUE,&mii);
     return hmnu;

}
static HMENU phoneBookSetMenu1(void)
{
     HMENU hmnu;
     MENUITEMINFO mii;
  //   hmnu=CreateMenu();
     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type= 	MFT_SEPARATOR;
     mii.id=0;
     mii.typedata=(DWORD)"";
     hmnu = CreatePopupMenu(&mii);

     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_MAKE_CALL;
     mii.typedata=(DWORD)"通话";
     InsertMenuItem(hmnu,0,TRUE,&mii);
     return hmnu;
	 

}
static HMENU phoneMainMenu(void)
{
     HMENU hmnu;
     MENUITEMINFO mii;
     hmnu=CreateMenu();
     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_MEG;
     mii.typedata=(DWORD)"管理";
     mii.hsubmenu=phoneBookSetMenu();
     InsertMenuItem(hmnu,0,TRUE,&mii);
     
     memset(&mii,0,sizeof(MENUITEMINFO));
     mii.type=MFT_STRING;
     mii.id=IDE_PB_MENU_CALL_MEG;
     mii.hsubmenu=phoneBookSetMenu1();
     mii.typedata=(DWORD)"通话";
     InsertMenuItem(hmnu,1,TRUE,&mii);
     return hmnu;

}

static void nameToTle_notif_proc (HWND hWnd, int id, int nc, DWORD add_data)
{
    switch(nc)
    {
			case LBN_CLICKED:
		  {
				int len; 
                            contactTemp.index = SendMessage (GetDlgItem(GetParent(hWnd), IDC_PB_SIL_NAME), LB_GETCURSEL, 0, 0);
		        	SendMessage (GetDlgItem(GetParent(hWnd), IDC_PB_SIL_TEL), LB_SETCURSEL, contactTemp.index, 0);
				len = SendMessage(GetDlgItem(GetParent(hWnd),IDC_PB_SIL_NAME),
					                       LB_GETTEXT,contactTemp.index,(LPARAM)contactTemp.contactName);
				len = SendMessage(GetDlgItem(GetParent(hWnd),IDC_PB_SIL_TEL),
					                       LB_GETTEXT,contactTemp.index,(LPARAM)contactTemp.contactTel);
		}break;
    }	
}
static void tleToName_notif_proc (HWND hWnd, int id, int nc, DWORD add_data)
{
    switch(nc)
    {
			case LBN_CLICKED:
		  {
				int len; 
				contactTemp.index = SendMessage (GetDlgItem(GetParent(hWnd), IDC_PB_SIL_TEL), LB_GETCURSEL, 0, 0);
		        	SendMessage (GetDlgItem(GetParent(hWnd), IDC_PB_SIL_NAME), LB_SETCURSEL, contactTemp.index, 0);
				len = SendMessage(GetDlgItem(GetParent(hWnd),IDC_PB_SIL_NAME),LB_GETTEXT,
					                       contactTemp.index,(LPARAM)contactTemp.contactName);
				len = SendMessage(GetDlgItem(GetParent(hWnd),IDC_PB_SIL_TEL),LB_GETTEXT,
					                       contactTemp.index,(LPARAM)contactTemp.contactTel);	  
	          }break;
    }	
}


static int PhoneBookProc(HWND hWnd,int message,WPARAM wParam,LPARAM lParam)
{

	switch(message)
        {
            case MSG_CREATE:{
		     int count;

                   LISTBOXITEMINFO lbii;   /* 声明列表框条目结构体变量 */
		     readPhonebookFile();
		     strcpy(contactTemp.contactName,"None!\0");
		     strcpy(contactTemp.contactTel,"123\0");
		     
                   CreateWindow(CTRL_LISTBOX,"",WS_VISIBLE | WS_BORDER | WS_VSCROLL |LBS_NOTIFY |LBS_USEICON,IDC_PB_SIL_NAME,
                         10,10,100,100,hWnd,0);
                   CreateWindow(CTRL_LISTBOX,"",WS_VISIBLE | WS_BORDER | WS_VSCROLL |LBS_NOTIFY |LBS_USEICON,IDC_PB_SIL_TEL,
                         120,10,100,100,hWnd,0);	
                   hIcon1 = LoadIconFromFile (HDC_SCREEN, "images/people.ico", 1);  /* 加载图标 */
		     hIcon2 = LoadIconFromFile (HDC_SCREEN, "images/call.ico", 1);  /* 加载图标 */				   
		     for(count = 0;count < contacts.contactCount; count++)
		     {
                          /* 设定结构信息,并添加条目 */
                          lbii.hIcon = hIcon1;
                          lbii.cmFlag = CMFLAG_BLANK;
                          lbii.string = contacts.contactData[count].contactName;
                          SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_ADDSTRING, 0, (LPARAM)&lbii);
						  
                          /* 设定结构信息,并添加条目 */
                          lbii.hIcon = hIcon2;
                          lbii.cmFlag = CMFLAG_BLANK;
                          lbii.string = contacts.contactData[count].contactTel;
                          SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_TEL), LB_ADDSTRING, 0, (LPARAM)&lbii);		  
	
		      }
		      SetNotificationCallback (GetDlgItem(hWnd,IDC_PB_SIL_NAME), nameToTle_notif_proc);
		      SetNotificationCallback (GetDlgItem(hWnd, IDC_PB_SIL_TEL), tleToName_notif_proc);
            	}break;
		case MSG_COMMAND:{
                     LISTBOXITEMINFO lbii;
			switch(wParam)
                      {
                           case IDE_PB_MENU_ADD:{
                                int count;
                                addDlg(hWnd);      	

				    //MessageBox (hWnd,contactTemp.contactName , contactTemp.contactTel, MB_OK | MB_ICONINFORMATION);   

                                lbii.hIcon = hIcon1;
                                lbii.cmFlag = CMFLAG_BLANK;
                                lbii.string = contactTemp.contactName;
                                SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_ADDSTRING, 0, (LPARAM)&lbii);
						  
                                lbii.hIcon = hIcon2;
                                lbii.cmFlag = CMFLAG_BLANK;
                                lbii.string = contactTemp.contactTel;
                                SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_TEL), LB_ADDSTRING, 0, (LPARAM)&lbii);			  

				    count= SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_GETCOUNT, 0, 0);
				    strcpy(contacts.contactData[count].contactName,contactTemp.contactName);
	                         strcpy(contacts.contactData[count].contactTel,contactTemp.contactTel);
	                         

                                contacts.contactCount = count;  

                                //writePhonebookFile();

				
	                         return 0 ;
			      }
			      case IDE_PB_MENU_EDIT:{
				    editDlg(hWnd); //创建 编辑对话框		

				    /*重设显示值*/
                                lbii.hIcon = hIcon1;
                                lbii.cmFlag = CMFLAG_BLANK;
                                lbii.string = contactTemp.contactName;
                                SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_DELETESTRING, contactTemp.index, 0) ;
				    SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_INSERTSTRING, contactTemp.index, (LPARAM)&lbii);
						  
                                lbii.hIcon = hIcon2;
                                lbii.cmFlag = CMFLAG_BLANK;
                                lbii.string = contactTemp.contactTel;
                                SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_TEL), LB_DELETESTRING, contactTemp.index, 0) ;
				    SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_TEL), LB_INSERTSTRING, contactTemp.index, (LPARAM)&lbii);	
				    strcpy(contacts.contactData[contactTemp.index].contactName,contactTemp.contactName);
	                         strcpy(contacts.contactData[contactTemp.index].contactTel,contactTemp.contactTel);				  
                                //writePhonebookFile();
                                return 0;
				  }
			     case IDE_PB_MENU_SEARCH:{
                                int Msg_return;
                                searchDlg(hWnd);
								
				    Msg_return = SendMessage(GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_FINDSTRING, 0,(LPARAM)contactTemp.contactName);
                        	    if(Msg_return == LB_ERR) //超不到
                        	    {
                                	  MessageBox (hWnd,  contactTemp.contactName,"查无此人", MB_OK | MB_ICONINFORMATION);
                        	     }
                        	     else
                        	     {	
                                	
                                	  SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_SETCURSEL, Msg_return, 0);
				         SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_TEL), LB_SETCURSEL, Msg_return, 0);
				     }
				     return 0;

			       }
				case IDE_PB_MENU_DELETE:{
                                 int i,count;
				     DeleteDlg(hWnd);
				     if(contactTemp.contactName[0] == '+')
				     {
                                      SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_DELETESTRING, contactTemp.index, 0) ;
	                               SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_TEL), LB_DELETESTRING, contactTemp.index, 0) ;
				     }return 0;
			       case IDE_PB_MENU_MAKE_CALL:

					callingMainWinCreat(hWnd,contactTemp.contactTel);
				     
		                   
				     return 0;
				}
		}
		
		case MSG_CLOSE:{
			 int i,count;
                      count= SendMessage (GetDlgItem(hWnd, IDC_PB_SIL_NAME), LB_GETCOUNT, 0, 0);
			 for(i = 0; i < count; i++)
	               {
		    	       SendMessage(GetDlgItem(hWnd,IDC_PB_SIL_NAME),
					                       LB_GETTEXT,i,(LPARAM)contactTemp.contactName);
		    	       SendMessage(GetDlgItem(hWnd,IDC_PB_SIL_TEL),
					                       LB_GETTEXT,i,(LPARAM)contactTemp.contactTel);
		    	       strcpy(contacts.contactData[i].contactName,contactTemp.contactName);
	                     strcpy(contacts.contactData[i].contactTel,contactTemp.contactTel);	
	                }
			 
                      contacts.contactCount = count;
			 writePhonebookFile();
                      DestroyMainWindow(hWnd);
                      PostQuitMessage(hWnd);
              break;
	       }
			}
		}
return DefaultMainWinProc(hWnd,message,wParam,lParam);
}

int  phoneBookWindows(HWND hcwd)
{
    MSG Msg;
    MAINWINCREATE CreateInfo;
    HWND pb_win;
    CreateInfo.dwStyle=WS_VISIBLE | WS_BORDER | WS_CAPTION;
    CreateInfo.dwExStyle=WS_EX_NONE;
    CreateInfo.spCaption="通讯录";
  //  CreateInfo.hMenu=0;
    CreateInfo.hCursor=GetSystemCursor(IDC_ARROW);
    CreateInfo.hIcon=0;
    CreateInfo.MainWindowProc=PhoneBookProc;
    printf("hahah");
    CreateInfo.hMenu=phoneMainMenu();	
    CreateInfo.lx=0;
    CreateInfo.ty=0;
    CreateInfo.rx=320;
    CreateInfo.by=216;
    CreateInfo.iBkColor=GetWindowElementColor (BKC_CONTROL_DEF);
    CreateInfo.dwAddData=0;
    CreateInfo.hHosting=hcwd;
    pb_win=CreateMainWindow(&CreateInfo); 
    ShowWindow(pb_win,SW_SHOWNORMAL);
    while(GetMessage(&Msg,pb_win)) 
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    MainWindowThreadCleanup(pb_win);
    return 0;    
}

⌨️ 快捷键说明

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