📄 user.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 + -