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

📄 user.c

📁 minigui PDA系统 可实现手机功能
💻 C
字号:
#include <sys/types.h>                                                  
#include <sys/stat.h>                                                      
#include <fcntl.h>                                                       
#include <termios.h>   
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <time.h>

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

#include "sysset.h"
#include "../mybuttonreg.h"

#define IDC_USER_NAME               		0x2045
#define IDC_USER_SEX                		0x2046
#define IDC_USER_AGE                		0x2047
#define IDC_USER_ADDRESS            	0x2048
#define IDC_USER_TELEPHONE   		0x2049
#define IDC_USER_NAMEINPUT          	0x2050
#define IDC_USER_SEXINPUT           	0x2051
#define IDC_USER_AGEINPUT           	0x2052
#define IDC_USER_ADDRESSINPUT       0x2053
#define IDC_USER_TELEPHONEINPUT   0x2054
#define IDC_USER_SAVE               		0x2055
#define IDC_USER_BACK               		0x2056

#define FILE_NAMECD    "data/UserInfo.txt"

char buffer_USER_NAME[30];
char buffer_USER_AGE[30];
char buffer_USER_ADDRESS[30];
char buffer_USER_TELEPHONE[30];

static BITMAP bmp_bkgnd;
/*static BITMAP save_pushed;
static BITMAP save_unpushed;
static BITMAP save_mousemove;
static BITMAP return_pushed;
static BITMAP return_unpushed;
static BITMAP return_mousemove;
*/
static HWND hCtrl1;
static HWND hCtrl2;
static HWND hUsd;


static const char* sex[]=
{
	"男",
	"女",
};


//---------------READFILE---------------
void READ_filecd(void)
{
     FILE *fp = NULL;
     //open file
     if((fp = fopen(FILE_NAMECD,"r")) == NULL)
     {
          //no file or open error
          printf ("\nSystem Message :Cant't  open  the file");
          printf ("\nIf you first use this ,The system don't have the file");
          printf ("\nSysrem will create the file to save data");
          //create a new file
          if ((fp = fopen(FILE_NAMECD,"w")) == NULL)
          {
               printf ("\nCreate File ERROR");
               return ;
          }
          fclose (fp);
     }
     //read file to struct
     if ( fread(&USER,sizeof(USER),1,fp) == 1)
     {
          fclose (fp);
     }
     //read file error
     else
     {
          printf("\nRead the file Error or no data\n");
          fclose (fp);
          return ;
     }
}

//---------------WRITEFILE---------------
void WRITE_filecd(void)
{
     FILE *fp = NULL;
     //open file
     if ( (fp = fopen(FILE_NAMECD,"w")) == NULL)
     {
          printf ("\nOpen the file Error(write)");
          return ;
     }
     //write file
     if (fwrite(&USER,sizeof(USER),1,fp) == 1)
     {
          fclose (fp);
          return ;
     }
     //write file error
     else
     {
          printf ("\nwrite the file error");
          fclose (fp);
          return ;
     }
}
static int Add_USERFile(HWND USER_ADD_hcwd)
{
	int ncc;
	int len;
	int wParam;
	 {
		   { 
    char buff_input[150];
    HWND hWnd_USER;
		    hWnd_USER = GetDlgItem (USER_ADD_hcwd, IDC_USER_NAMEINPUT);                               //---比较——》如果该文本中没字符的话,则提示输入内容
		      len = GetWindowTextLength(hWnd_USER);                                     //---比较——》如果该文本中没字符的话,则提示输入内容
		     if(len == 0)                                                                  //---比较——》如果该文本中没字符的话,则提示输入内容
		     {
           			MessageBox (USER_ADD_hcwd, "please input name", "error", MB_OK | MB_ICONINFORMATION);//---比较——》如果该文本中没字符的话,则提示输入内容
           			return 0;			     
            	     }
	    	     GetWindowText(hWnd_USER,buffer_USER_NAME, 30);// 将名字里的内容写到文件中去
		          
		   hWnd_USER = GetDlgItem (USER_ADD_hcwd,IDC_USER_SEXINPUT);                           //---比较——》如果该文本中没字符的话,则提示输入内容
		          len = GetWindowTextLength(hWnd_USER);                         										 //---比较——》如果该文本中没字符的话,则提示输入内容
		     if(len == 0)  																															 	 //---比较——》如果该文本中没字符的话,则提示输入内容
		     {
			       MessageBox (USER_ADD_hcwd, "please input number", "error", MB_OK | MB_ICONINFORMATION);         //---比较——》如果该文本中没字符的话,则提示输入内容
			       return 0;
            	     }
		     GetWindowText(hWnd_USER,USER.USER_Sex, 30);//将性别写到文件中去
		   hWnd_USER = GetDlgItem (USER_ADD_hcwd,IDC_USER_AGEINPUT);
		   len = GetWindowTextLength(hWnd_USER);                         										 //---比较——》如果该文本中没字符的话,则提示输入内容
		     if(len == 0)  																															 	 //---比较——》如果该文本中没字符的话,则提示输入内容
		     {
			       MessageBox (USER_ADD_hcwd, "please input number", "error", MB_OK | MB_ICONINFORMATION);         //---比较——》如果该文本中没字符的话,则提示输入内容
			       return 0;
                   }
		     GetWindowText(hWnd_USER,buffer_USER_AGE, 30);//将年龄写到文件中去

		   hWnd_USER = GetDlgItem (USER_ADD_hcwd,IDC_USER_ADDRESSINPUT);
		   len = GetWindowTextLength(hWnd_USER);                         										 //---比较——》如果该文本中没字符的话,则提示输入内容
		     if(len == 0)  																															 	 //---比较——》如果该文本中没字符的话,则提示输入内容
		     {
			       MessageBox (USER_ADD_hcwd, "please input number", "error", MB_OK | MB_ICONINFORMATION);         //---比较——》如果该文本中没字符的话,则提示输入内容
			       return 0;
            	     }
		     GetWindowText(hWnd_USER,buffer_USER_ADDRESS, 30);//将地址写到文件中去

		   hWnd_USER = GetDlgItem (USER_ADD_hcwd, IDC_USER_TELEPHONEINPUT);                               //---比较——》如果该文本中没字符的话,则提示输入内容
		      len = GetWindowTextLength(hWnd_USER);                                     //---比较——》如果该文本中没字符的话,则提示输入内容
		     if(len == 0)                                                                  //---比较——》如果该文本中没字符的话,则提示输入内容
		     {
           			MessageBox (USER_ADD_hcwd, "please input telephone", "error", MB_OK | MB_ICONINFORMATION);//---比较——》如果该文本中没字符的话,则提示输入内容
           			return 0;			     
                   }
	    	     GetWindowText(hWnd_USER,buffer_USER_TELEPHONE, 30);// 将名字里的内容写到文件中去
     		}
      
          		SendMessage (GetDlgItem(USER_ADD_hcwd, IDC_USER_NAMEINPUT), LB_GETTEXT, 1, (LPARAM)buffer_USER_NAME);
		    	SendMessage (GetDlgItem(USER_ADD_hcwd, IDC_USER_SEXINPUT), LB_GETTEXT, 1, (LPARAM)sex);
		    	SendMessage (GetDlgItem(USER_ADD_hcwd, IDC_USER_AGEINPUT), LB_GETTEXT, 1, (LPARAM)buffer_USER_AGE);
		    	SendMessage (GetDlgItem(USER_ADD_hcwd, IDC_USER_ADDRESSINPUT), LB_GETTEXT, 1, (LPARAM)buffer_USER_ADDRESS);
			SendMessage (GetDlgItem(USER_ADD_hcwd, IDC_USER_TELEPHONEINPUT), LB_GETTEXT, 1, (LPARAM)buffer_USER_TELEPHONE);
			strcpy(USER.USER_Name, buffer_USER_NAME);
		 	strcpy(USER.USER_Age, buffer_USER_AGE);
		 	strcpy(USER.USER_Address, buffer_USER_ADDRESS);
			strcpy(USER.USER_Telephone, buffer_USER_TELEPHONE);
		 			
		 			
		 			
      
      WRITE_filecd();   
      MessageBox (USER_ADD_hcwd, "add successfully", "hint", MB_OK | MB_ICONINFORMATION);
   }	
   return 0;
     
}

/*static void notify_proc (HWND hwnd, int id, int nc, DWORD add_data)
{	
	//printf("hwnd=%d\n", hwnd);		
	if ( hwnd == hCtrl1 && nc == MYBUTTON_PUSHED)
	{		
		SetWindowAdditionalData(hwnd, (DWORD)&save_pushed);
	} 
	if(hwnd == hCtrl2 && nc == MYBUTTON_PUSHED)
		{
			SetWindowAdditionalData(hwnd, (DWORD)&return_pushed);
		}
			
	if ( hwnd == hCtrl1 && nc == MYBUTTON_UNPUSHED)
	{
		SetWindowAdditionalData(hwnd, (DWORD)&save_unpushed);
		Add_USERFile(hUsd);
		
		// add your business code
	} 
	if(hwnd == hCtrl2 && nc == MYBUTTON_UNPUSHED)
		{
			SetWindowAdditionalData(hwnd, (DWORD)&return_unpushed);
			SendNotifyMessage(hUsd,MSG_CLOSE,0,0);
		}
	
	if( hwnd == hCtrl1 && nc == MYBUTTON_MOUSEMOVE)
	{	
		SetWindowAdditionalData(hwnd, (DWORD)&save_mousemove);
	} 
	if(hwnd == hCtrl2 && nc == MYBUTTON_MOUSEMOVE)
		{
			SetWindowAdditionalData(hwnd, (DWORD)&return_mousemove);
		}
			
	InvalidateRect (hwnd, NULL, TRUE);
}

*/
static int UserProc(HWND hUsd, int message, WPARAM wParam, LPARAM lParam)
{
	  int i;
	  HWND hU;
	  HDC hdc;
    switch (message) 
    {
        case MSG_CREATE:
		    /*LoadBitmap (HDC_SCREEN, &save_pushed, "image/button/213.jpg");
        		LoadBitmap (HDC_SCREEN, &save_unpushed, "image/button/311.jpg");
        		LoadBitmap (HDC_SCREEN, &save_mousemove, "image/button/212.jpg");
			LoadBitmap (HDC_SCREEN, &return_pushed, "image/button/223.jpg");
        		LoadBitmap (HDC_SCREEN, &return_unpushed, "image/button/221.jpg");
        		LoadBitmap (HDC_SCREEN, &return_mousemove, "image/button/222.jpg");
			*/
			READ_filecd();
                CreateWindow (CTRL_SLEDIT,"",WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT,IDC_USER_NAMEINPUT,65, 15, 120, 20,hUsd,0);
                hU=CreateWindow (CTRL_COMBOBOX,"",WS_VISIBLE | CBS_DROPDOWNLIST | CBS_NOTIFY,IDC_USER_SEXINPUT,65, 45, 45, 20,hUsd,30);
                CreateWindow (CTRL_SLEDIT,"",WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT,IDC_USER_AGEINPUT,65, 75, 35, 20,hUsd,0);
                CreateWindow (CTRL_SLEDIT,"",WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT,IDC_USER_ADDRESSINPUT,65, 105, 120, 20,hUsd,0);
	         CreateWindow (CTRL_SLEDIT,"",WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT,IDC_USER_TELEPHONEINPUT,65, 135, 120, 20,hUsd,0);
		//  hCtrl1 =  CreateWindowEx (CTRL_MYBUTTON,"保存",WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDC_USER_SAVE,225, 25, 50, 25,hUsd,(DWORD)&save_unpushed);
		hCtrl1 =CreateWindow ("button",
                          "保存",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                          IDC_USER_SAVE,
                         225, 25, 50, 25,hUsd, 0);	

		//hCtrl2 = CreateWindowEx (CTRL_MYBUTTON,"返回",WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,WS_EX_TRANSPARENT,IDC_USER_BACK,225, 115, 50, 25,hUsd,(DWORD)&return_unpushed);    	
		hCtrl2 =CreateWindow ("button",
                          "返回",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                          IDC_USER_BACK,
                         225, 115, 50, 25,hUsd, 0);	



			SetWindowText(GetDlgItem(hUsd, IDC_USER_NAMEINPUT),USER.USER_Name);
			    SetWindowText(GetDlgItem(hUsd, IDC_USER_SEXINPUT),USER.USER_Sex); 
			    SetWindowText(GetDlgItem(hUsd, IDC_USER_AGEINPUT),USER.USER_Age);
			    SetWindowText(GetDlgItem(hUsd, IDC_USER_ADDRESSINPUT),USER.USER_Address);
			    SetWindowText(GetDlgItem(hUsd, IDC_USER_TELEPHONEINPUT),USER.USER_Telephone);
		//SetNotificationCallback (hCtrl1, notify_proc);
		//SetNotificationCallback (hCtrl2, notify_proc);
				for(i=0;i<2;i++)
    	  		   SendMessage(hU,CB_ADDSTRING,0,(LPARAM)sex[i]);
                          return 0;  
		case MSG_MOUSEMOVE:
				//SetWindowAdditionalData(hCtrl1, (DWORD)&save_unpushed);
				//SetWindowAdditionalData(hCtrl2, (DWORD)&return_unpushed);
				
				InvalidateRect (hCtrl1, NULL, TRUE);
				InvalidateRect (hCtrl2, NULL, TRUE);
				break;
		
		case MSG_PAINT:
			//printf ("BeginPaint.\n");
			hdc = BeginPaint (hUsd);
			SetBkMode(hdc, BM_TRANSPARENT);//把时间设置为透明显示
			SetTextColor(hdc, PIXEL_red);//设置字体颜色
			TextOut (hdc, 10, 17, "姓名:");
			TextOut (hdc, 10, 47, "性别:");
			TextOut (hdc, 10, 77, "年龄:");
			TextOut (hdc, 10, 107,"地址:");
			TextOut (hdc, 10, 137, "手机:");
			
			EndPaint (hUsd, hdc);
			//printf ("EndPaint.\n");
			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 (hUsd);
				fGetDC = TRUE;
	    		}       
	    		if (clip) {
				rcTemp = *clip;
				ScreenToClient (hUsd, &rcTemp.left, &rcTemp.top);
				ScreenToClient (hUsd, &rcTemp.right, &rcTemp.bottom);
				IncludeClipRect (hdc, &rcTemp);
	   		 }

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

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

		case MSG_COMMAND:
        		{
                    switch (wParam)
            	    { 
                         case IDC_USER_SAVE: 
				Add_USERFile(hUsd);
                         	break;
                         case IDC_USER_BACK:
                            DestroyAllControls (hUsd);
                        	DestroyMainWindow (hUsd);
                        	PostQuitMessage (hUsd);          	
                        	break; 		  
            	    }
                } 
                break; 

        case MSG_DESTROY:
        	  DestroyAllControls(hUsd);
        	  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);
              */
              DestroyMainWindow (hUsd);
              PostQuitMessage (hUsd);
              return 0;
    }
    return DefaultMainWinProc(hUsd, message, wParam, lParam);
}
 int  user(HWND hSnd)
{  
    MSG Msg;
    MAINWINCREATE CreateInfo;
 //   HWND hUsd;
    RegisterMyButtonControl ();
    CreateInfo.dwStyle=WS_VISIBLE | WS_BORDER | WS_CAPTION;
    CreateInfo.dwExStyle=WS_EX_NONE;
    CreateInfo.spCaption="|☆|★|☆|  3用 户 信 息 |☆|★|☆|";
    CreateInfo.hMenu=0;
    CreateInfo.hCursor=GetSystemCursor(IDC_ARROW);
    CreateInfo.hIcon=0;
    CreateInfo.MainWindowProc=UserProc;
    CreateInfo.lx=0;
    CreateInfo.ty=0;
    CreateInfo.rx=320;
    CreateInfo.by=216;
    CreateInfo.iBkColor=GetWindowElementColor (BKC_CONTROL_DEF);
    CreateInfo.dwAddData=0;
    CreateInfo.hHosting=hSnd;
    
     if (LoadBitmap (HDC_SCREEN, &bmp_bkgnd, "image/background/bkgnd29.jpg"))
         return -1;
    
    hUsd=CreateMainWindow(&CreateInfo); 
    ShowWindow(hUsd,SW_SHOWNORMAL);
    while(GetMessage(&Msg,hUsd)) 
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    UnregisterMyButtonControl ();
    MainWindowThreadCleanup(hUsd);
    return 0;    
}

⌨️ 快捷键说明

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