telbook.c

来自「minigui PDA系统 可实现手机功能」· C语言 代码 · 共 573 行 · 第 1/2 页

C
573
字号
	if(hwnd == hCtrl2 && nc == MYBUTTON_MOUSEMOVE)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&add_mousemove);
	}
	if(hwnd == hCtrl3 && nc == MYBUTTON_MOUSEMOVE)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&search_mousemove);
	}
	if(hwnd == hCtrl4 && nc == MYBUTTON_MOUSEMOVE)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&alter_mousemove);
	}
	if(hwnd == hCtrl5 && nc == MYBUTTON_MOUSEMOVE)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&delete_mousemove);
	}
	if(hwnd == hCtrl6 && nc == MYBUTTON_MOUSEMOVE)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&return_mousemove);
	}
	if(hwnd == hCtrl7 && nc == MYBUTTON_MOUSEMOVE)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&sim_mousemove);
	}
			
	InvalidateRect (hwnd, NULL, TRUE);

}
*/
static int InitWinProc(HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
int i=0;
time_t now;
char time_buf[50];
struct tm* timenow;
char *wday[]={"Sun", "Mon", "Tue" ,"Wed" ,"Thu" ,"Fri" ,"Sat"};
FILE *DTRfp;
switch (message) 
{
case MSG_CREATE:
	createwin(hDlg);

			/*LoadBitmap (HDC_SCREEN, &delete_pushed, "image/button/d13.jpg");
			LoadBitmap (HDC_SCREEN, &delete_unpushed, "image/button/d11.jpg");
        	LoadBitmap (HDC_SCREEN, &delete_mousemove, "image/button/d12.jpg");
			LoadBitmap (HDC_SCREEN, &add_pushed, "image/button/a3.jpg");
        	LoadBitmap (HDC_SCREEN, &add_unpushed, "image/button/a1.jpg");
      		LoadBitmap (HDC_SCREEN, &add_mousemove, "image/button/a2.jpg");
      		LoadBitmap (HDC_SCREEN, &search_pushed, "image/button/s3.jpg");
      		LoadBitmap (HDC_SCREEN, &search_unpushed, "image/button/s1.jpg");
        	LoadBitmap (HDC_SCREEN, &search_mousemove, "image/button/s2.jpg");
			LoadBitmap (HDC_SCREEN, &sim_pushed, "image/button/sim3.jpg");
        	LoadBitmap (HDC_SCREEN, &sim_unpushed, "image/button/sim1.jpg");
      		LoadBitmap (HDC_SCREEN, &sim_mousemove, "image/button/sim2.jpg");
      		LoadBitmap (HDC_SCREEN, &dial_pushed, "image/button/d03.jpg");
      		LoadBitmap (HDC_SCREEN, &dial_unpushed, "image/button/d01.jpg");
        	LoadBitmap (HDC_SCREEN, &dial_mousemove, "image/button/d02.jpg");
			LoadBitmap (HDC_SCREEN, &return_pushed, "image/button/r03.jpg");
        	LoadBitmap (HDC_SCREEN, &return_unpushed, "image/button/r01.jpg");
      		LoadBitmap (HDC_SCREEN, &return_mousemove, "image/button/r02.jpg");
      		LoadBitmap (HDC_SCREEN, &alter_pushed, "image/button/u3.jpg");
      		LoadBitmap (HDC_SCREEN, &alter_unpushed, "image/button/u1.jpg");
        	LoadBitmap (HDC_SCREEN, &alter_mousemove, "image/button/u2.jpg");

	
	SetNotificationCallback (hCtrl1, notify_proc);
	SetNotificationCallback (hCtrl2, notify_proc);
	SetNotificationCallback (hCtrl3, notify_proc);
	SetNotificationCallback (hCtrl4, notify_proc);
	SetNotificationCallback (hCtrl5, notify_proc);
	SetNotificationCallback (hCtrl6, notify_proc);
	SetNotificationCallback (hCtrl7, notify_proc);
	*/
	SetNotificationCallback (GetDlgItem (hDlg, IDM_NAME), search_proc);		
	SetNotificationCallback (GetDlgItem (hDlg, IDM_PHONE), search_proc);	
	SetNotificationCallback (GetDlgItem (hDlg,IDM_LIST), list_proc);	
	print(hDlg,IDM_LIST);
	
	return 0;
case MSG_PAINT:
	hdc = BeginPaint (hDlg);
	SetBkMode(hdc, BM_TRANSPARENT);
 	SetTextColor(hdc, PIXEL_red);
	TextOut(hdc,5, 5,"姓名");
	TextOut(hdc,5, 35,"号码");
	EndPaint (hDlg, hdc);
	return 0;
	
case MSG_MOUSEMOVE:
			/*SetWindowAdditionalData(hCtrl1, (DWORD)&dial_unpushed);
			SetWindowAdditionalData(hCtrl2, (DWORD)&add_unpushed);
			SetWindowAdditionalData(hCtrl3, (DWORD)&search_unpushed);
			SetWindowAdditionalData(hCtrl4, (DWORD)&alter_unpushed);
			SetWindowAdditionalData(hCtrl5, (DWORD)&delete_unpushed);
			SetWindowAdditionalData(hCtrl6, (DWORD)&return_unpushed);
			SetWindowAdditionalData(hCtrl7, (DWORD)&sim_unpushed);
			*/	
			InvalidateRect (hCtrl1, NULL, TRUE);
			InvalidateRect (hCtrl2, NULL, TRUE);
			InvalidateRect (hCtrl3, NULL, TRUE);
			InvalidateRect (hCtrl4, NULL, TRUE);
			InvalidateRect (hCtrl5, NULL, TRUE);
			InvalidateRect (hCtrl6, NULL, TRUE);
			InvalidateRect (hCtrl7, NULL, TRUE);
			break;
///*	
case MSG_COMMAND:
	SendDlgItemMessage (hDlg, IDM_LIST, LB_RESETCONTENT, 0, (LPARAM)0);

	switch (wParam) {
         case  IDM_ADD://添加
		addItem(hDlg);
		print(hDlg,IDM_LIST);
		break;
	case  IDM_SEARCH://查找
		search(hDlg,IDM_LIST,search_name,search_num);
		break;
	case  IDM_MODIFY://修改
	{		
	if(strcmp(list,"")==0)
		{
		MessageBox(hDlg,"请选择一位要修改的联系人","确定",MB_OK|MB_BASEDONPARENT);
		break;
		}
	parse(list);
	modify(hDlg,mod_name,mod_num);
	print(hDlg,IDM_LIST);
	}
		break;
	case IDM_DELETE://删除
		if(strcmp(list,"")==0)
		{
		MessageBox(hDlg,"请选择一位要删除的联系人","确定",MB_OK|MB_BASEDONPARENT);
		break;
		}
		parse(list);
		deleteFromFile();
		MessageBox(hDlg,"删除成功!","确定",MB_OK|MB_BASEDONPARENT);
		strcpy(search_name,"");
		strcpy(search_num,"");
		SetWindowText (GetDlgItem (hDlg, IDM_NAME), "");
		SetWindowText (GetDlgItem (hDlg, IDM_PHONE), "");
		print(hDlg,IDM_LIST);
		break;	
		
	///////////////////////////////////////////////////////////////////////////////	
	case  IDM_CALL://打电话
		GetWindowText(GetDlgItem (hDlg, 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(hDlg);
                  }
		break;
	
	/////////////////////////////////////////////////////////////////////////////////////////
	case IDM_BROWSE://浏览SIM卡
tty_writecmd("at+cpbr=?",strlen( "at+cpbr=?"));
	//tty_writecmd("at+cpbr=1,5",strlen( "at+cpbr=1,5"));
		break;
	case IDM_RETURN://返回
            DestroyMainWindow (hDlg);//销毁主窗口,发送MSG_DESTROY消息
            PostQuitMessage (hDlg	);//退出消息循环,发送MSG_QUIT消息	
            break;	
        }
	return 0;
//*/	
	
    case MSG_ERASEBKGND://用图片填充背景
	{		
		HDC hdc = (HDC)wParam; 
		const RECT* clip = (const RECT*) lParam; 
    	BOOL fGetDC = FALSE; 
		RECT rcTemp;         
    	if (hdc == 0) { 
        hdc = GetClientDC (hDlg); 
        fGetDC = TRUE;}                     
		if (clip) { 
        rcTemp = *clip; 
	//将屏幕坐标转换为客户区坐标
        ScreenToClient (hDlg, &rcTemp.left, &rcTemp.top); 
        ScreenToClient (hDlg, &rcTemp.right, &rcTemp.bottom); 
        IncludeClipRect (hdc, &rcTemp); 
    		} 
       FillBoxWithBitmap (hdc, 0, 0, 0, 0, &bmp_bkgnd);  
   	if (fGetDC) 
        ReleaseDC (hdc); 
	return 0;
	} 
    case MSG_CLOSE: 
	/* UnloadBitmap (&bmp_bkgnd);
	   UnloadBitmap (&return_pushed);
        	UnloadBitmap (&return_unpushed);
        	UnloadBitmap (&return_mousemove);
			UnloadBitmap (&dial_pushed);
        	UnloadBitmap (&dial_unpushed);
        	UnloadBitmap (&dial_mousemove);
        	  UnloadBitmap (&add_pushed);
        	UnloadBitmap (&add_unpushed);
        	UnloadBitmap (&add_mousemove);
			UnloadBitmap (&delete_pushed);
        	UnloadBitmap (&delete_unpushed);
        	UnloadBitmap (&delete_mousemove);
        	  UnloadBitmap (&alter_pushed);
        	UnloadBitmap (&alter_unpushed);
        	UnloadBitmap (&alter_mousemove);
			UnloadBitmap (&search_pushed);
        	UnloadBitmap (&search_unpushed);
        	UnloadBitmap (&search_mousemove);
        	  UnloadBitmap (&sim_pushed);
        	UnloadBitmap (&sim_unpushed);
        	UnloadBitmap (&sim_mousemove);
	 */
		DestroyMainWindow (hDlg);//销毁主窗口,发送MSG_DESTROY消息
        PostQuitMessage (hDlg	);//退出消息循环,发送MSG_QUIT消息	  
          return 0;
    }
    
    return DefaultMainWinProc(hDlg, message, wParam, lParam);

}
int telbook (HWND hWnd)
//int MiniGUIMain(int argc,const char *argv[]) 
{
    HDC hdc;
    MSG Msg;
    //HWND hMainWnd;
    MAINWINCREATE CreateInfo;
    if( LoadBitmap(HDC_SCREEN,&bmp_bkgnd,"image/background/bkgnd29.jpg"))
   			return -1;
   	RegisterMyButtonControl ();			
   			
    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 = InitWinProc;
    CreateInfo.lx = 0;
    CreateInfo.ty = 0;
    CreateInfo.rx = 320;
    CreateInfo.by = 216;
    CreateInfo.iBkColor = COLOR_lightwhite;
    CreateInfo.dwAddData = 0;
    CreateInfo.hHosting = hWnd;
    hMainWnd= CreateMainWindow (&CreateInfo);
hWnd_Tel=hMainWnd;
    if (hMainWnd == HWND_INVALID)
        return -1;

    ShowWindow(hMainWnd, SW_SHOWNORMAL);

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

⌨️ 快捷键说明

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