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

📄 calling.c

📁 minigui PDA系统 可实现手机功能
💻 C
字号:
#include <stdio.h>
#include <string.h>

#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>

#include "tel.h"
#include "call_time.h"
#include "../common.h"

#define  IDC_CBUTTON_OK         0x1011
#define  IDC_CBUTTON_CANCEL     0x1012
#define  IDC_TIMER              0x1013

//static BITMAP bmp_bkgnd;
//static int timecount = 0; 
FILE *COAfp;
FILE *CNAfp;

static int CallingDialogProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    time_t now;
		char time_buf[50];
		struct tm* timenow;
		char *wday[]={"Sun", "Mon", "Tue" ,"Wed" ,"Thu" ,"Fri" ,"Sat"};
		
    switch (message) 
    {
        case MSG_CREATE:
        	  CreateWindow(CTRL_BUTTON,
        	               "接听",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE, 
        	               IDC_CBUTTON_OK, 
        	               60,42,60,25, 
        	               hWnd, 
        	               0);
        	  CreateWindow(CTRL_BUTTON,
        	               "拒绝",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE, 
        	               IDC_CBUTTON_CANCEL, 
        	               180,42,60,25, 
        	               hWnd, 
        	               0);                   	   
            break;
                        
        case MSG_COMMAND:
        	  switch(wParam)
            {
                case IDC_CBUTTON_OK:
                   	CALL_NOCARRIER = 2;
                    printf("%d\n",SendNotifyMessage (MainWindow,MSG_RING_OK,0,0L));
                    //SendNotifyMessage (GetParent(hWnd),MSG_RING_OK,0,0L);
                    DestroyMainWindow (hWnd);
                    PostQuitMessage (hWnd);
                	  break;
                	  
                case IDC_CBUTTON_CANCEL:
                	  if( CALL_ANS == 1 )
                	  {
                		    CALL_ANS = 0;
                	  
                    	  gprs_hold();
                    	  
                        printf("%d\n",COAfp = fopen("data/okanswer.txt","a+"));
                    	  strcpy(CI.tel_number,tel_num);
               	        
               	        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, COAfp);
                        fclose(COAfp);
                        
                        DestroyMainWindow (hWnd);
                        PostQuitMessage (hWnd);
                    
                    }
                	  break;    	
            }
            return 0;
                   	
        case MSG_PAINT:
         //   printf ("BeginPaint.\n");
            hdc = BeginPaint (hWnd);
            
            TextOut(hdc,60,5,"来电");
            TextOut(hdc,60,22,tel_num);

            EndPaint (hWnd, hdc);
        //    printf ("EndPaint.\n");
            return 0;
            
       /* case MSG_ERASEBKGND:
            hdc = GetClientDC (hWnd);
            FillBoxWithBitmap (hdc,0, 0, 320, 200, &bmp_bkgnd); 
            ReleaseDC (hdc);
            return 0;*/

        case MSG_RING_HOLD:       //未接电话(对方来电,对方挂断)
        	  CALL_ANS = 0;
	          printf("%d\n",CNAfp = fopen("data/notanswer.txt","a+"));
        	  strcpy(CI.tel_number,tel_num);
   	        
   	        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, CNAfp);
            fclose(CNAfp);
            
            DestroyMainWindow (hWnd);
            PostQuitMessage (hWnd);
        	  return 0;
        	  	      
        case MSG_CLOSE:
        	  //UnloadBitmap(&bmp_bkgnd);
            DestroyMainWindow (hWnd);
            PostQuitMessage (hWnd);
            return 0;
    }

    return DefaultMainWinProc(hWnd, message, wParam, lParam);
}

int CallingDialog(HWND hWnd)
{
    MSG Msg;
    HWND hCLWnd;
    MAINWINCREATE CreateInfo;

    CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER ; 
    CreateInfo.dwExStyle = WS_EX_TOPMOST;
    CreateInfo.spCaption = "";
    CreateInfo.hMenu = 0;
    CreateInfo.hCursor = GetSystemCursor(0);
    CreateInfo.hIcon = 0;
    CreateInfo.MainWindowProc = CallingDialogProc;
    CreateInfo.lx = 5;
    CreateInfo.ty = 140;
    CreateInfo.rx = 315;
    CreateInfo.by = 215;
    CreateInfo.iBkColor = COLOR_lightwhite;
    CreateInfo.dwAddData = 0;
    CreateInfo.hHosting = hWnd;
    
    //LoadBitmap (HDC_SCREEN, &bmp_bkgnd, "bkgnd.jpg");
    
    hCLWnd = CreateMainWindow (&CreateInfo);
    
    hCallingWnd = hCLWnd;
    
    if (hCLWnd == HWND_INVALID)
        return -1;

    ShowWindow(hCLWnd, SW_SHOWNORMAL);

    while (GetMessage(&Msg, hCLWnd)) {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }

    MainWindowThreadCleanup (hCLWnd);

    return 0;
}

⌨️ 快捷键说明

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