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

📄 notanswer.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 "call_time.h"
#include "../telbook/telbook.h"
#include "../mybuttonreg.h"

#define  IDC_NABUTTON_SAVE    0x1041
#define  IDC_NABUTTON_DELETE  0x1042
#define  IDC_NABUTTON_CANCEL  0x1043
#define  IDC_NABUTTON_RETURN  0x1044
#define  IDC_NALISTBOX        0x1045

static BITMAP bmp_bkgnd;
static BITMAP delall_pushed;
static BITMAP delall_unpushed;
static BITMAP delall_mousemove;
static BITMAP return_pushed;
static BITMAP return_unpushed;
static BITMAP return_mousemove;
static BITMAP save_pushed;
static BITMAP save_unpushed;
static BITMAP save_mousemove;
static BITMAP delete_pushed;
static BITMAP delete_unpushed;
static BITMAP delete_mousemove;

static HWND hCtrl1;
static HWND hCtrl2;
static HWND hCtrl3;
static HWND hCtrl4;

static HWND hNAWnd;

static void notify_proc (HWND hwnd, int id, int nc, DWORD add_data)
{	
	int  i;
	int  index = 0;
	char buf[50];
	FILE *NAfp;
    	
	if ( hwnd == hCtrl1 && nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&save_pushed);
	} 
	if(hwnd == hCtrl2 && nc == MYBUTTON_PUSHED)
		{
			//SetWindowAdditionalData(hwnd, (DWORD)&delete_pushed);
		}
			
	if ( hwnd == hCtrl3 && nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&delall_pushed);
	} 
	if(hwnd == hCtrl4 && nc == MYBUTTON_PUSHED)
		{
			//SetWindowAdditionalData(hwnd, (DWORD)&return_pushed);
		}
	if ( hwnd == hCtrl1 && nc == MYBUTTON_UNPUSHED)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&save_unpushed);
		
        index = SendMessage (GetDlgItem(hNAWnd, IDC_NALISTBOX), LB_GETCURSEL, 0, 0);
		strcpy(tem_num,CINA[index].tel_number);
        addItem(hNAWnd);
	} 
	if(hwnd == hCtrl2 && nc == MYBUTTON_UNPUSHED)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&delete_unpushed);
		
		index = SendMessage (GetDlgItem(hNAWnd, IDC_NALISTBOX), LB_GETCURSEL, 0, 0);
        SendMessage (GetDlgItem(hNAWnd, IDC_NALISTBOX), LB_DELETESTRING, index, 0);
        for(i=index; i<callinfo_len; i++)
        {
            CINA[i] = CINA[i+1];
        }
            	  	  
        callinfo_len -= 1;
            	  	  
        if(callinfo_len == 0)
        {
            NAfp = fopen("data/notanswer.txt", "w");
            fclose(NAfp);
        }
        else
        {
            NAfp = fopen("data/notanswer.txt", "w");
            fwrite(CINA, sizeof(_CALLINFO), callinfo_len, NAfp);
            fclose(NAfp);
        }
			
		}
	if ( hwnd == hCtrl3 && nc == MYBUTTON_UNPUSHED)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&delall_unpushed);
		
		SendMessage (GetDlgItem(hNAWnd, IDC_NALISTBOX), LB_RESETCONTENT, 0, 0);
        callinfo_len = 0;
        NAfp = fopen("data/notanswer.txt", "w");
        fclose(NAfp);
		
	} 
	if(hwnd == hCtrl4 && nc == MYBUTTON_UNPUSHED)
		{
			//SetWindowAdditionalData(hwnd, (DWORD)&return_unpushed);
			
			SendNotifyMessage(hNAWnd,MSG_CLOSE,0,0);
		}
	
	if( hwnd == hCtrl1 && nc == MYBUTTON_MOUSEMOVE)
	{	
		
		//SetWindowAdditionalData(hwnd, (DWORD)&save_mousemove);
	} 
	if(hwnd == hCtrl2 && nc == MYBUTTON_MOUSEMOVE)
		{
			//SetWindowAdditionalData(hwnd, (DWORD)&delete_mousemove);
		}
	if( hwnd == hCtrl3 && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&delall_mousemove);
	} 
	if(hwnd == hCtrl4 && nc == MYBUTTON_MOUSEMOVE)
		{
			//SetWindowAdditionalData(hwnd, (DWORD)&return_mousemove);
		}
			
			
	InvalidateRect (hwnd, NULL, TRUE);
}


static int NotAnswerProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
	  int  i;
	  int  index = 0;
    char buf[50];
    FILE *NAfp;
    
    switch (message) 
    {
        case MSG_CREATE:
			/*	LoadBitmap (HDC_SCREEN, &save_pushed, "image/button/06.jpg");
        		LoadBitmap (HDC_SCREEN, &save_unpushed, "image/button/08.jpg");
        		LoadBitmap (HDC_SCREEN, &save_mousemove, "image/button/09.jpg");
        		LoadBitmap (HDC_SCREEN, &return_pushed, "image/button/15.jpg");
        		LoadBitmap (HDC_SCREEN, &return_unpushed, "image/button/13.jpg");
        		LoadBitmap (HDC_SCREEN, &return_mousemove, "image/button/14.jpg");
        		LoadBitmap (HDC_SCREEN, &delete_pushed, "image/button/16.jpg");
        		LoadBitmap (HDC_SCREEN, &delete_unpushed, "image/button/17.jpg");
        		LoadBitmap (HDC_SCREEN, &delete_mousemove, "image/button/18.jpg");
        		LoadBitmap (HDC_SCREEN, &delall_pushed, "image/button/12.jpg");
        		LoadBitmap (HDC_SCREEN, &delall_unpushed, "image/button/10.jpg");
        		LoadBitmap (HDC_SCREEN, &delall_mousemove, "image/button/11.jpg");
				*/
		/*	hCtrl1 = CreateWindowEx(CTRL_MYBUTTON,
        	               "存储",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
        	               WS_EX_TRANSPARENT,
        	               IDC_NABUTTON_SAVE, 
        	               245, 30, 60, 30, 
        	               hWnd, 
        	               (DWORD)&save_unpushed);*/
		hCtrl1 =CreateWindow ("button",
                           "存储",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                          IDC_NABUTTON_SAVE, 
        	               245, 30, 60, 30, 
        	               hWnd,  0);
        /*	hCtrl2 = CreateWindowEx(CTRL_MYBUTTON,
        	               "删除",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE, 
        	               WS_EX_TRANSPARENT, 
        	               IDC_NABUTTON_DELETE, 
        	               245, 66, 60, 30, 
        	               hWnd, 
        	               (DWORD)&delete_unpushed);*/
			hCtrl2 =CreateWindow ("button",
                          "删除",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                           IDC_NABUTTON_DELETE, 
        	               245, 66, 60, 30, 
        	               hWnd,  0);
        	/*hCtrl3 = CreateWindowEx(CTRL_MYBUTTON,
        	               "清空",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE, 
        	               WS_EX_TRANSPARENT, 
        	               IDC_NABUTTON_CANCEL, 
        	               245, 104, 60, 30, 
        	               hWnd, 
        	               (DWORD)&delall_unpushed);*/
			hCtrl3 =CreateWindow ("button",
                          "清空",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                           IDC_NABUTTON_CANCEL, 
        	               245, 104, 60, 30, 
        	               hWnd,  0);
        /*	hCtrl4 = CreateWindowEx(CTRL_MYBUTTON,
        	               "返回",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE, 
        	               WS_EX_TRANSPARENT, 
        	               IDC_NABUTTON_RETURN, 
        	               245, 140, 60, 30, 
        	               hWnd, 
        	               (DWORD)&return_unpushed);*/
		hCtrl4 =CreateWindow ("button",
                          "返回",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                            IDC_NABUTTON_RETURN, 
        	               245, 140, 60, 30, 
        	               hWnd,  0);
            CreateWindowEx (CTRL_LISTBOX,
                         "", 
                         WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | WS_VSCROLL, 
                         WS_EX_TRANSPARENT,
                         IDC_NALISTBOX, 
                         10, 20, 225, 160, 
                         hWnd, 
                         0);
                         
         /*   SetNotificationCallback (hCtrl1, notify_proc);
			SetNotificationCallback (hCtrl2, notify_proc);
			SetNotificationCallback (hCtrl3, notify_proc);
			SetNotificationCallback (hCtrl4, notify_proc);
          */                           
            NAfp = fopen("data/notanswer.txt", "r");
            rewind(NAfp);
            
            while(!feof(NAfp))
            {
                 if(fread(&CINA[index], sizeof(_CALLINFO), 1, NAfp))
                 	{
                      sprintf(buf, "%s %s", CINA[index].tel_number, CINA[index].tel_time);
                      SendMessage (GetDlgItem(hWnd, IDC_NALISTBOX), LB_ADDSTRING, index, (LPARAM)buf);	 	  
                      index++;
                  }
            }
            callinfo_len = index;
            fclose(NAfp);                               	                                  	   
            break;
            
        case MSG_MOUSEMOVE:
				SetWindowAdditionalData(hCtrl1, (DWORD)&save_unpushed);
				SetWindowAdditionalData(hCtrl2, (DWORD)&delete_unpushed);
				SetWindowAdditionalData(hCtrl3, (DWORD)&delall_unpushed);
				SetWindowAdditionalData(hCtrl4, (DWORD)&return_unpushed);
				
				InvalidateRect (hCtrl1, NULL, TRUE);
				InvalidateRect (hCtrl2, NULL, TRUE);
				InvalidateRect (hCtrl3, NULL, TRUE);
				InvalidateRect (hCtrl4, NULL, TRUE);
				break; 
         
        case MSG_COMMAND:
        	  switch(wParam)
            {
            	  case IDC_NABUTTON_SAVE:
            	  	  index = SendMessage (GetDlgItem(hWnd, IDC_NALISTBOX), LB_GETCURSEL, 0, 0);
            	  	  strcpy(tem_num,CINA[index].tel_number);
            	  	  addItem(hWnd);
            	  	  break;
            	  	  
            	  case IDC_NABUTTON_DELETE:
            	  	  index = SendMessage (GetDlgItem(hWnd, IDC_NALISTBOX), LB_GETCURSEL, 0, 0);
            	  	  SendMessage (GetDlgItem(hWnd, IDC_NALISTBOX), LB_DELETESTRING, index, 0);
            	  	  for(i=index; i<callinfo_len; i++)
            	  	  {
            	  	      CINA[i] = CINA[i+1];
            	  	  }
            	  	  
            	  	  callinfo_len -= 1;
            	  	  
            	  	  if(callinfo_len == 0)
            	  	  {
            	  	      NAfp = fopen("data/notanswer.txt", "w");
            	  	      fclose(NAfp);
            	  	  }
            	  	  else
            	  	 	{
            	  	      NAfp = fopen("data/notanswer.txt", "w");
            	  	      fwrite(CINA, sizeof(_CALLINFO), callinfo_len, NAfp);
            	  	      fclose(NAfp);
            	  	  }
            	  		break; 
            	  		
            	  case IDC_NABUTTON_CANCEL:
            	  	  SendMessage (GetDlgItem(hWnd, IDC_NALISTBOX), LB_RESETCONTENT, 0, 0);
            	  	  callinfo_len = 0;
            	  	  NAfp = fopen("data/notanswer.txt", "w");
            	  	  fclose(NAfp);
            	  	  break;	
            	  	              	
                case IDC_NABUTTON_RETURN:
                	  DestroyMainWindow (hWnd);
                    PostQuitMessage (hWnd);
                    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 (hWnd);
				fGetDC = TRUE;
	    		}       
	    		if (clip) {
				rcTemp = *clip;
				ScreenToClient (hWnd, &rcTemp.left, &rcTemp.top);
				ScreenToClient (hWnd, &rcTemp.right, &rcTemp.bottom);
				IncludeClipRect (hdc, &rcTemp);
	   		 }

	    		FillBoxWithBitmap (hdc, 0, 0, 320, 206, &bmp_bkgnd);

	    		if (fGetDC)
			ReleaseDC (hdc);
	    		return 0;
		}

        case MSG_CLOSE:
        	/*	UnloadBitmap (&bmp_bkgnd);
				UnloadBitmap (&return_pushed);
        		UnloadBitmap (&return_unpushed);
        		UnloadBitmap (&return_mousemove);
				UnloadBitmap (&save_pushed);
        		UnloadBitmap (&save_unpushed);
        		UnloadBitmap (&save_mousemove);
        		UnloadBitmap (&delete_pushed);
        		UnloadBitmap (&delete_unpushed);
        		UnloadBitmap (&delete_mousemove);
				UnloadBitmap (&delall_pushed);
        		UnloadBitmap (&delall_unpushed);
        		UnloadBitmap (&delall_mousemove);*/
            DestroyMainWindow (hWnd);
            PostQuitMessage (hWnd);
            return 0;
    }

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

int NotAnswerDialog(HWND hWnd)
{
    MSG Msg;
   // HWND hNAWnd;
    MAINWINCREATE CreateInfo;

    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 = NotAnswerProc;
    CreateInfo.lx = 0;
    CreateInfo.ty = 0;
    CreateInfo.rx = 320;
    CreateInfo.by = 215;
    CreateInfo.iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);
    CreateInfo.dwAddData = 0;
    CreateInfo.hHosting = hWnd;
    
    if (LoadBitmap (HDC_SCREEN, &bmp_bkgnd, "image/background/bkgnd29.jpg"))
        return -1;
         
	RegisterMyButtonControl ();
	
    
    hNAWnd = CreateMainWindow (&CreateInfo);
    
    if (hNAWnd == HWND_INVALID)
        return -1;

    ShowWindow(hNAWnd, SW_SHOWNORMAL);

    while (GetMessage(&Msg, hNAWnd)) {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
	
	UnregisterMyButtonControl ();
    MainWindowThreadCleanup (hNAWnd);

    return 0;
}

⌨️ 快捷键说明

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