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

📄 win_sysdatetime.c~

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C~
字号:
/*win_sysDateTime.c*//***	COMPANY NAME:	国星**	FILE    NAME:	win_sysDateTime.c**	FILE	PATH:	Interface/win_sysDateTime.c**	WINDOWS NAME:	日期时间**	WINDOWS PATH:	系统 / 系统查看 / 日期时间**	OTHER INFORMATION;	无**	CREATER	NAME:	JiangYuanqing**	MENDER	NAME:	LiWencheng**	CHANGE  TIME:	11/4/2007 */#include "sysSrcInfo.h"#ifdef _EXT_SKIN#define SIID_TIMER		0#define SIID_ADJUSTTIME  2#define ID_TIME				100    #define ID_EDIT_DISP		101#define ID_EDIT_YEAR		102#define ID_EDIT_MONTH		103#define ID_EDIT_DAY			104#define ID_EDIT_HOUR		105#define ID_EDIT_MINUTE      106#define ID_EDIT_SECOND      107BOOL  TimeSetted;static BITMAP bmp_locate;static HWND hWndMainDateTime;       extern HWND  hIconView_Index;extern HWND winIndex;static const char *bmp_name_Datetime[] ={	"./Pictures/b_windowsbackground_1.PNG",               	"./Pictures/OK.PNG",				"./Pictures/menu.PNG",	"./Pictures/return.PNG",		                                   };//static si_bmplabel_t timer      = { "00:00:00", "0123456789:-" };/* 定义皮肤元素数组 */static skin_item_t skin_main_items [] ={	{SIID_OK,            SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,	   BUTTONLEFT_X, BUTTON_Y,  {},   1 ,"" },	{SIID_ADJUSTTIME,    SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,	   BUTTONCENTER_X,BUTTON_Y, {},   2, "" },	{SIID_RETURN,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,	   BUTTONRIGHT_X, BUTTON_Y, {},   3, "" }};/* 定义皮肤 */static skin_head_t skin_datetime ={    "main",  //const BITMAP* bmps;   SKIN_STYLE_TOOLTIP, NULL, NULL,     0, 3, skin_main_items, FALSE /** The number of the items in this skin. */  /* 定义皮肤元素数组 */};static int ToInt(char input[]){   int intValue=0,length;   char *p=input;   length=strlen(input);   for(; p <(input+length); p++ )   {     if( (*p <'0') || *p >'9')      {        intValue=-1;        break;      }     else        intValue=(*p -'0') +intValue*10;   }    return intValue;}/* 皮肤事件回调函数 */static int main_event_cb_DateTime (HWND hwnd, skin_item_t* item, int event, void* data){        static int click_num = 0;    char buff[10]   ={0};    char setYear[5] ={0};    char setMon[3]  ={0};    char setDay[3]  ={0};     char setHour[3] ={0};    char setMin[3]  ={0};    char setSec[3]  ={0};    Time set_time;    if (event == SIE_BUTTON_CLICKED) {        switch (item->id) {  	  case  SIID_OK:                        //set current time by user's order    		GetWindowText(GetDlgItem(hwnd,ID_EDIT_YEAR) ,setYear,4);    		GetWindowText(GetDlgItem(hwnd,ID_EDIT_MONTH),setMon ,2);    		GetWindowText(GetDlgItem(hwnd,ID_EDIT_DAY)  ,setDay ,2);                  		GetWindowText(GetDlgItem(hwnd,ID_EDIT_HOUR) ,setHour,2);    		GetWindowText(GetDlgItem(hwnd,ID_EDIT_MINUTE),setMin,2);    		GetWindowText(GetDlgItem(hwnd,ID_EDIT_SECOND),setSec,2);                             //转换char型为int型              set_time.year=ToInt(setYear);             currTime.year=set_time.year-1900;             set_time.mon=ToInt(setMon);             currTime.mon= set_time.mon-1;             set_time.mday=ToInt(setDay);             currTime.mday=set_time.mday;    		set_time.hour=ToInt(setHour);             currTime.hour=set_time.hour;    		set_time.min=ToInt(setMin);             currTime.min=set_time.min;    		set_time.sec=ToInt(setSec);             currTime.sec=set_time.sec;                         if((set_time.year < 0) || set_time.year > 9999)    	       {     		 MessageBox(hwnd,"set year error","error",MB_OK);     		 break;   	       }             if((set_time.mon < 0) || set_time.mon > 11)    	       {                            sprintf(buff,"%d",set_time.mday);     		 MessageBox(hwnd,buff,"error",MB_OK);     		break;   	       }             if((set_time.mday < 1) || set_time.mday > 31)    	       {     		MessageBox(hwnd,"set day  error","error",MB_OK);     		break;   	       }    		if((set_time.hour < 0) || set_time.hour > 24)    	       {     		MessageBox(hwnd,"set hour error","error",MB_OK);     		break;   	       }    		if((set_time.min < 0) || set_time.min > 59)    	       {     		MessageBox(hwnd,"set minute error","error",MB_OK);     		break;    	       }    		if((set_time.sec < 0) || set_time.sec > 59)    	       {     		MessageBox(hwnd,"set second error","error",MB_OK);     		break;    	       }             SetSysTime(&currTime);             //刷新EDIT_DISP显示           sprintf(buff,"%04d-%02d-%02d %02d:%02d:%02d",set_time.year,set_time.mon,set_time.mday, set_time.hour, set_time.min,set_time.sec);     	    SetWindowText (GetDlgItem (hwnd, ID_EDIT_DISP), buff);           TimeSetted=TRUE;           //在用户设置了时间后让标记TimeSetting为true,winServ后台服务轮询TimeSetted true后刷新任务栏时间显示             //Do something in the future             break;        case SIID_RETURN:     				DestroyAllControls ( hWndMainDateTime );		ShowWindow ( hWndMainDateTime, SW_HIDE);		MainWindowCleanup (hWndMainDateTime);		skin_deinit (&skin_datetime);              /* 撤销皮肤 */         	LoadSkinBmps ( &skin_datetime, FALSE, bmp_name_Datetime ,4 );    /* 卸载位图资源 */         	MiniGUIExtCleanUp ();       	SendMessage (hWndMainDateTime, MSG_CLOSE, 0, 0);		UnloadBitmap( &bmp_locate);		win_SysLook( hWndMain );                	            break;                 break;        }    }       return 1;}/* 皮肤窗口消息回调函数 */static int msg_event_cb (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result){    HDC hdc;    gal_pixel pixel;    char buf[25];    char setYear[5] ={0};    char setMon[3]  ={0};    char setDay[3]  ={0};     char setHour[3] ={0};    char setMin[3]  ={0};    char setSec[3]  ={0};    skin_head_t *hostskin = NULL;    HWND child;        switch (message) {         case MSG_CREATE:           LoadBitmap (HDC_SCREEN, &bmp_locate, "Pictures/a_SysLook_5.PNG");           GetSysTime( &initTime );           currTime=InitDispTime( &initTime );            //创建皮肤窗体同时获取系统时间以初始化时间显示           DispTimeNum( hwnd,SIID_TIMER,&currTime);                   /*****************加载static控件*************************/               child= CreateWindow(                         "static",                         "当前时间",                        //WS_CHILD | WS_VISIBLE  |SS_WHITERECT,                        WS_VISIBLE | SS_SIMPLE,                        IDC_STATIC,                        2, 18, 80, 15, hwnd, 0);                    		  //修改 static控件背景色              gal_pixel pixel = RGB2Pixel (HDC_SCREEN, 0xFF, 0xFF, 0xFF);     	       SetWindowBkColor (child, pixel);              InvalidateRect (child, NULL, TRUE);              child=  CreateWindow (                         "static",                         "系统时间设置",                        //WS_CHILD | WS_VISIBLE | SS_CENTER |SS_WHITERECT,                        WS_VISIBLE | SS_SIMPLE,                        IDC_STATIC,                        2, 55, 80, 15, hwnd, 0);		       	        SetWindowBkColor (child, pixel);              InvalidateRect (child, NULL, TRUE);              child=  CreateWindow (                        "static",                               "年      月      日",                        WS_VISIBLE | SS_SIMPLE,                        IDC_STATIC,                        2, 75, 160, 15, hwnd, 0);		  SetWindowBkColor (child, pixel);              InvalidateRect (child, NULL, TRUE);              child=  CreateWindow (                        "static",                               "时      分      秒",                        WS_VISIBLE | SS_SIMPLE,                        IDC_STATIC,                        2, 115, 160, 15, hwnd, 0);		  SetWindowBkColor (child, pixel);               InvalidateRect (child, NULL, TRUE);         /**************创建编辑框控件范例***********************/                                                              	      CreateWindow( CTRL_SLEDIT,                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER ,//|ES_READONLY,                     ID_EDIT_DISP,                     0, 35, 160, 15, hwnd, 0);        	        sprintf(buf,"%04d-%02d-%02d %02d:%02d:%02d",currTime.year,currTime.mon,currTime.mday,                         currTime.hour, currTime.min,currTime.sec); //初始化edit控件时间显示 		         	SetWindowText (GetDlgItem (hwnd, ID_EDIT_DISP), buf);    		SetTimer (hwnd,ID_TIME,100);//起动一个间隔为1秒的定时器标识号为ID_TIME,接收定时器消息的窗口为hWnd            CreateWindow( CTRL_SLEDIT,  //editControl for setting year                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER,                     ID_EDIT_YEAR,                     0, 95, 50, 15, hwnd, 0);             DispSetTime( hwnd,ID_EDIT_YEAR,currTime.year,TRUE);             CreateWindow( CTRL_SLEDIT,  //setting month                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER,                     ID_EDIT_MONTH,                     55, 95, 50, 15, hwnd, 0);             DispSetTime( hwnd,ID_EDIT_MONTH,currTime.mon,FALSE);             CreateWindow( CTRL_SLEDIT,  //setting day                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER,                     ID_EDIT_DAY,                     110, 95, 50, 15, hwnd, 0);             DispSetTime( hwnd,ID_EDIT_DAY,currTime.mday,FALSE);             CreateWindow( CTRL_SLEDIT,  //setting hour                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER,                     ID_EDIT_HOUR,                     0, 135, 50, 15, hwnd, 0);             DispSetTime( hwnd,ID_EDIT_HOUR,currTime.hour,FALSE);             CreateWindow( CTRL_SLEDIT,  //setting minute                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER,                     ID_EDIT_MINUTE,                     55, 135, 50, 15, hwnd, 0);             DispSetTime( hwnd,ID_EDIT_MINUTE,currTime.min,FALSE);             CreateWindow( CTRL_SLEDIT,  //setting second                           "",                     WS_CHILD | WS_VISIBLE | WS_BORDER,                     ID_EDIT_SECOND,                     110, 135, 50, 15, hwnd, 0);             DispSetTime( hwnd,ID_EDIT_SECOND,currTime.sec,FALSE);                /*设置各个edit控件中可编辑文本上限 */     //        SendMessage(GetDlgItem(hwnd,ID_EDIT_YEAR),EM_LIMITTEXT,4,0L);     //        SendMessage(GetDlgItem(hwnd,ID_EDIT_MONTH),EM_LIMITTEXT,2,0L);     //        SendMessage(GetDlgItem(hwnd,ID_EDIT_DAY),EM_LIMITTEXT,2,0L);     //        SendMessage(GetDlgItem(hwnd,ID_EDIT_HOUR),EM_LIMITTEXT,2,0L);                    //        SendMessage(GetDlgItem(hwnd,ID_EDIT_MINUTE),EM_LIMITTEXT,2,0L);     //        SendMessage(GetDlgItem(hwnd,ID_EDIT_SECOND),EM_LIMITTEXT,2,0L);             break;          /**********************************************************/                case MSG_TIMER:                 //同步刷新edit控件时间显示                  sprintf(buf,"%04d-%02d-%02d %02d:%02d:%02d",currTime.year,currTime.mon,currTime.mday,                                currTime.hour, currTime.min,currTime.sec);		 SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), buf);/*                 DispSetTime( hwnd,ID_EDIT_YEAR,currTime.year,TRUE);                  DispSetTime( hwnd,ID_EDIT_YEAR,currTime.year,TRUE);                  DispSetTime( hwnd,ID_EDIT_YEAR,currTime.year,TRUE);                  DispSetTime( hwnd,ID_EDIT_HOUR,currTime.hour,FALSE);                  DispSetTime( hwnd,ID_EDIT_MINUTE,currTime.min,FALSE);                  DispSetTime( hwnd,ID_EDIT_SECOND,currTime.sec,FALSE);    */        /*		 sprintf(setYear,"%04d",currTime.year);     	         SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), setYear);		 sprintf(setMon,"%02d",currTime.mon);     	         SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), setMon);		 sprintf(setDay,"%02d",currTime.mday);     	         SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), setDay;		 sprintf(setHour,"%02d",currTime.hour);     	         SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), setHour);		 sprintf(setMin,"%02d",currTime.min);     	         SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), setMin);		 sprintf(setSec,"%02d",currTime.sec);     	         SetWindowText (GetDlgItem  (hwnd, ID_EDIT_DISP), setSec);*/              break;         case MSG_PAINT:               hdc=BeginPaint (hwnd);               			//FillBoxWithBitmap (hdc, 0,0, 160, 17, &bmp_locate);			FillBoxWithBitmap (hdc, ZTL_PIC_X,ZTL_PIC_Y, ZTL_PIC_W,ZTL_PIC_H, &bmp_locate);			SetBkMode (hdc, BM_TRANSPARENT); 			TextOut (hdc, WZ_ZTL_X4, WZ_ZTL_Y, "日期时间" );                EndPaint (hwnd,hdc);	        break;         case MSG_CLOSE:              KillTimer(hwnd,ID_TIME);              break;                }    return 1;}void Win_DateTime( HWND hwnd ){    MSG msg;   #ifdef _MGRM_PROCESSES    JoinLayer(NAME_DEF_LAYER , "skindemo" , 0 , 0);#endif    if (!InitMiniGUIExt()) {       printf("Error!");    }     LoadSkinBmps (&skin_datetime, TRUE, bmp_name_Datetime, 4);    /* 装载位图资源 */       if (skin_datetime.bmps == NULL) {        printf ("Could not load skin bitmaps!\n");           }					    if ( !skin_init (&skin_datetime, main_event_cb_DateTime, msg_event_cb) ){    /* 初始化皮肤 */        printf ("skin init fail!\n");    }    else{ 	hWndMainDateTime =  create_skin_control (&skin_datetime, hwnd,1432,DEF_X_, DEF_Y_, DEF_WIDTH, DEF_HEIGHT);	currShowWindowHwnd = &hWndMainDateTime;} }#ifndef _LITE_VERSION#include <minigui/dti.c>#endif#else#error "Lack of SKIN support in MiniGUIExt library."#endif /* _EXT_SKIN */

⌨️ 快捷键说明

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