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

📄 list.c.bak

📁 基于minigui的手机程序开发 实现电话拨打功能
💻 BAK
字号:
#include"comm.h"
#include <minigui/dti.c>
#define IDC_LISTBOX1  1000
#define IDC_LISTBOX2  1001
#define IDC_BUTTON  102
#define IDC_BUTTON1 103
#define IDC_BUTTON2 104
#define IDC_BUTTON3 105

void gprs_read()
{ 
  char call[100]; 
  char callNumber[50];
  char *p;
  GPRSSTOP=1;
  p=call;
  int len,i,len2;
  while(GPRSSTOP==1)
	{
     tty_read(call,1);
	 if(strcmp(call,"R")==0)//来电话处理 /*处理来电RING+CLIP:"0146290800"
   	    {
			tty_read(call,4);
			if(strcmp(call,"RING")==0)
			{	    
				    tty_read(call,50);
					len=strlen(call);
					
					for(i=0;i<=len;i++,p++)
						{
						 if(call[i]=='\"')
							{
							 strcpy(callNumber,++p);
							 len2=strlen(callNumber);
							 callNumber[len2-1]='\0';//去掉电话号的最后的"
							 break;
							}
						}
			 
					haveCallWindow(callNumber);
			}
   	    }
   	      
   	  if(strcmp(call,"N")==0)//呼叫建立失败处理 
		{
				      tty_read(call,10);
					if(strcmp(call,"NO CARRIER")==0)
						{
					     MessageBox(hwnd_CallWin,"呼叫建立失败!请重试!","呼叫建立失败",MB_OK);
					
						}

	    }
	  if(strcmp(call,"O")==0)//通话已建立
		{
	     tty_read(call,2);
		if(strcmp(call,"OK")==0)
			{
		     //计时窗口
		     timeWindow(callNumber);//计时窗口
			}
	 
	    }

	 usleep(300000);
	}

}
static int CreateWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{			
		LISTBOXITEMINFO lbii;
    switch (message) {
    		case MSG_CREATE:     		           
				 CreateWindow (CTRL_LISTBOX, 
         "",
         WS_VISIBLE | LBS_NOTIFY|WS_BORDER|WS_VSCROLL|LBS_USEICON|LBS_CHECKBOX|LBS_AUTOCHECK,                            				
				 IDC_LISTBOX1,
				 10, 20, 100, 160, 
				 hWnd,
				 0);
				 CreateWindow (CTRL_LISTBOX, 
         "",
         WS_VISIBLE | LBS_NOTIFY|WS_BORDER|WS_VSCROLL,                            				
				 IDC_LISTBOX2,
				 115, 20, 100, 160, 
				 hWnd,
				 0);				          
				
					CreateWindow (CTRL_BUTTON, 
         "拨号",
         WS_VISIBLE |WS_BORDER,                            				
				 IDC_BUTTON1,
				 210, 20, 80, 30, 
				 hWnd,
				 0);
				 CreateWindow (CTRL_BUTTON, 
         "添加",
         WS_VISIBLE |WS_BORDER,                            				
				 IDC_BUTTON2,
				 210, 80, 80, 30, 
				 hWnd,
				 0); 
				 CreateWindow (CTRL_BUTTON, 
         "删除",
         WS_VISIBLE |WS_BORDER,                            				
				 IDC_BUTTON3,
				 210, 140, 80, 30, 
				 hWnd,
				 0); 
				 LoadData(hWnd,IDC_LISTBOX1,IDC_LISTBOX2);//读数据库
				 break;
				
			 case MSG_COMMAND:
			switch(wParam)
			{
				case IDC_BUTTON1:	//拨号按钮  		
				 { 
			
				  char telnumber[20];
				  char name[20];
				  int index=-1;
				  index = SendMessage(GetDlgItem(hWnd,IDC_LISTBOX1), LB_GETCURSEL, 0, 0);
				  SendMessage(GetDlgItem(hWnd,IDC_LISTBOX1), LB_GETTEXT, index, (LPARAM)name);        	
				  SendMessage(GetDlgItem(hWnd,IDC_LISTBOX2), LB_GETTEXT, index, (LPARAM)telnumber);   
				  gprs_call(telnumber,strlen(telnumber));//打电话
				  callWindow(name,telnumber);  
				  
			
				
				
				 }
					break;
					case IDC_BUTTON2://添加按钮
					{
							 insert();
							lbii.hIcon=(DWORD)&bmp;//bmp定义在comm.h里 设置为全局变量
							lbii.cmFlag=IMGFLAG_BITMAP;
						    if((strlen(name)!=0)&&(strlen(tel)!=0))//当姓名和电话号不为空时
								{ lbii.string=name;			  
								  SendMessage(GetDlgItem(hWnd,IDC_LISTBOX1),LB_ADDSTRING,0,(LPARAM)&lbii);			  
								  SendMessage(GetDlgItem(hWnd,IDC_LISTBOX2),LB_ADDSTRING,0,(LPARAM)tel);
								 
								}
					}
					break;	
			       case IDC_BUTTON3://删除按钮
					{
					  char telnumber[20];
					  char name[20];
					  int index=-1;
			          index = SendMessage(GetDlgItem(hWnd,IDC_LISTBOX1), LB_GETCURSEL, 0, 0);
					    SendMessage(GetDlgItem(hWnd,IDC_LISTBOX1), LB_GETTEXT, index, (LPARAM)name);
				        SendMessage(GetDlgItem(hWnd,IDC_LISTBOX2), LB_GETTEXT, index, (LPARAM)telnumber); 
					    delWindow(hWnd,name,telnumber,index,IDC_LISTBOX1,IDC_LISTBOX2);
				   
				    }
					   break;
					   
			}
			break;	
		case MSG_PAINT:
	    { 
		  HDC hdc;
		  hdc = BeginPaint(hWnd);
		  SetBkColor(hdc,PIXEL_yellow);
		  SetTextColor(hdc,PIXEL_red);
		  TextOut(hdc,10,0,"姓名:");
		  TextOut(hdc,145,0,"电话:");
        
		  EndPaint(hWnd,hdc);
	
	    }
		break;
      case MSG_CLOSE:
    	UnloadBitmap (&bmp);
      DestroyMainWindow (hWnd); 
      PostQuitMessage (hWnd); 
      return 0;
    }
    return DefaultMainWinProc(hWnd, message, wParam, lParam); 
}
int list()
{  
    MSG Msg; 
    HWND hMainWnd; 
    MAINWINCREATE CreateInfo;
	  pthread_t th_b;
    CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
    CreateInfo.dwExStyle = WS_EX_NONE;
    CreateInfo.spCaption = "电话本";
    CreateInfo.hMenu = 0;
    CreateInfo.hCursor = GetSystemCursor(0);
    CreateInfo.hIcon = 0;
    CreateInfo.MainWindowProc = CreateWinProc;
    CreateInfo.lx = 0; 
    CreateInfo.ty = 0; 
    CreateInfo.rx = 320; 
    CreateInfo.by = 240; 
    CreateInfo.iBkColor = COLOR_black; 
    CreateInfo.dwAddData = 0;
    CreateInfo.hHosting = HWND_DESKTOP;
    if (LoadBitmap (HDC_SCREEN, &bmp, "smile.BMP"))
    return 1;
    hMainWnd = CreateMainWindow (&CreateInfo);     
    if (hMainWnd == HWND_INVALID)
        return -1;  

	 
    ShowWindow(hMainWnd, SW_SHOWNORMAL); 
while (GetMessage(&Msg, hMainWnd)) 
    { 
		TranslateMessage(&Msg);
		DispatchMessage(&Msg);
    }
    MainWindowThreadCleanup (hMainWnd);
    return 0;
}

⌨️ 快捷键说明

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