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

📄 clock.c

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 C
📖 第 1 页 / 共 3 页
字号:




if (oldhour != timeParamPtr->hour)
	{
	   DrawText(hGC, GetASIIStr(oldhour), 35,160,150,220, \
	       	HZK_16X16_FONT, GPC_BLACK, GPC_XOR_STYLE);
         DrawText(hGC, GetASIIStr(timeParamPtr->hour), 35,160,150,220, \
	       	HZK_16X16_FONT, GPC_BLACK, GPC_REPLACE_STYLE);
      }


if (oldmin != timeParamPtr->minute)
  {
       DrawText(hGC, GetASIIStr(oldmin), 65,160,150,220, \
        	    	HZK_16X16_FONT, GPC_BLACK, GPC_XOR_STYLE);
       DrawText(hGC, GetASIIStr(timeParamPtr->minute), 65,160,150,220, \
	        	HZK_16X16_FONT, GPC_BLACK, GPC_REPLACE_STYLE);

   }



if (oldsec != timeParamPtr->second)
  {

    DrawText(hGC,GetASIIStr(oldsec) , 94,160,150,220, \
	    	HZK_16X16_FONT, GPC_BLACK,GPC_XOR_STYLE); 	
    DrawText(hGC,GetASIIStr(timeParamPtr->second) ,94,160,150,220, \
	    	HZK_16X16_FONT, GPC_BLACK,GPC_REPLACE_STYLE);
 //  oldsec = timeParamPtr ->second;
  }
oldhour = timeParamPtr->hour;
oldsec = timeParamPtr ->second;
oldmin = timeParamPtr->minute;
}








void SearchTimeSet(U32 hGC)
{
   U32   mainwin,bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9;  
   U32   pGC = hGC;
   MSG  msg;
   U8    quit = 0;
   U8    tmp =0;
 ASIX_TIME TmpTime = {0,0,0},changetime={23,59,40};

  TmpTime =  TimeParam;
  mainwin = CreateWindow(	WNDCLASS_WIN,			//窗口类型(主窗口)
							"时间设置",			//窗口标题
							WS_OVERLAPPEDWINDOW,	//窗口风格(主窗口风格的宏定义参见头文件asixwin.h)
							0,0,					//窗口左上角在逻辑屏幕中的坐标
							PHY_LCD_W,PHY_LCD_H,	//窗口的宽度和高度
							0,						//窗口的父窗口(主窗口没有父窗口)
							0,						//窗口的附加参数(主窗口没有附加参数)
							NULL);					//窗口的附加数据(主窗口没有附加数据)
	

   bt1 = CreateWindow( WNDCLASS_BUTTON,
						"确定",
						WS_CHILD | BS_REGULAR,
						11,215,
						42,20,
						mainwin,
						0,
						NULL);

  bt2 = CreateWindow( WNDCLASS_BUTTON,
						"取消",
						WS_CHILD | BS_REGULAR,
						56,215,
						42,20,
						mainwin,
						0,
						NULL);

    bt3 = CreateWindow( WNDCLASS_BUTTON,
						"修改",
						WS_CHILD | BS_REGULAR,
						106,215,
						42,20,
						mainwin,
						0,
						NULL);

    bt4 = CreateWindow( WNDCLASS_BUTTON,
						"sec +",
						WS_CHILD | BS_REGULAR,
						11,175,
						42,20,
						mainwin,
						0,
						NULL);
        bt5 = CreateWindow( WNDCLASS_BUTTON,
						"sec -",
						WS_CHILD | BS_REGULAR,
						11,195,
						42,20,
						mainwin,
						0,
						NULL);
       bt6 = CreateWindow( WNDCLASS_BUTTON,
						"min+",
						WS_CHILD | BS_REGULAR,
						56,175,
						42,20,
						mainwin,
						0,
						NULL);
       bt7 = CreateWindow( WNDCLASS_BUTTON,
						"min-",
						WS_CHILD | BS_REGULAR,
						56,195,
						42,20,
						mainwin,
						0,
						NULL);
      bt8 = CreateWindow( WNDCLASS_BUTTON,
						"hour+",
						WS_CHILD | BS_REGULAR,
						106,175,
						42,20,
						mainwin,
						0,
						NULL);
       bt9 = CreateWindow( WNDCLASS_BUTTON,
						"hour-",
						WS_CHILD | BS_REGULAR,
						106,195,
						42,20,
						mainwin,
						0,
						NULL);
//    hGC = GetGC();
	
//	KVMStarter();
firstprint = 0;	
TimePrint1(pGC);

	// 消息处理
	while(!quit)
	{
		ASIXGetMessage(&msg, NULL, 0, 0);
		switch(msg.message)
		{
			// 在此用户加入自己的消息处理

                   case WM_COMMAND:
                   	     if (msg.lparam == bt1)
                   	      	{
                   	      	   quit = 1;
                   	      	}else
                   	      	if (msg.lparam == bt2)
                   	    	{
                   	    	   TimeParam = TmpTime;
                   	    	   quit =1;
                   	    	}else
                   	      	if (msg.lparam == bt3)
                   	      	{
                   	      	  TimeParam = changetime;
                   	   //   	  firstprint = 0;
                   	      	  TimePrint1(pGC);
                   	      	}else
                   	      	if (msg.lparam == bt4)
                   	      	{ 
                   	      	   tmp = TimeParam.second;
                   	      	   if (tmp == 59)
                   	      	       tmp = 0;
				     else tmp ++;
				   TimeParam.second = tmp;
                   	      	   TimePrint1(pGC);
                   	      	}else
                   	      	if (msg.lparam == bt5)
                   	      	{  tmp = TimeParam.second;
                   	      	    if (tmp == 0)
                   	      	    	tmp = 60;
                   	      	    tmp --;
                   	          TimeParam.second = tmp;
                   	 //         firstprint = 0;
                   	      	   TimePrint1(pGC);
                   	      	   
                   	      	}else
                   	      	if (msg.lparam == bt6)
                   	      	{ 
                   	      	   tmp = TimeParam.minute;
                   	      	   if (tmp == 59)
                   	      	       tmp = 0;
				     else tmp ++;
				   TimeParam.minute = tmp;
				//   firstprint = 0;
                   	      	   TimePrint1(pGC);
                   	      	}else
                   	      	if (msg.lparam == bt7)
                   	      	{
                   	          tmp = TimeParam.minute;
                   	      	    if (tmp == 0)
                   	      	    	tmp = 60;
                   	      	    tmp --;
                   	          TimeParam.minute = tmp;
                   	      	   TimePrint1(pGC);
                   	      	}else
                   	      	if (msg.lparam == bt8)
                   	      	{ 
                   	      	   tmp = TimeParam.hour;
                   	      	   if (tmp == 23)
                   	      	       tmp = 0;
				     else tmp ++;
				   TimeParam.hour = tmp;
                   	      	   TimePrint1(pGC);
                   	      	}else
                   	      	if (msg.lparam == bt9)
                   	      	{
                   	          tmp = TimeParam.hour;
                   	      	    if (tmp == 0)
                   	      	    	tmp = 24;
                   	      	    tmp --;
                   	          TimeParam.hour= tmp;
                   	      	   TimePrint1(pGC);
                   	      	}
                   	      	
                   	      	
                   	      	break;
			// 关闭窗口的消息,建议用户不要更改该消息的处理
			case WM_QUIT:
				TimeParam = TmpTime;
				quit = 1;
				break;
		}
		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 
	}

	DestroyWindow( mainwin );
firstprint = 0;
//	EndofTask();

   
}



void TimeProcess(void)
{
	MSG 	msg;
 	U32		mainwin;
	//U32		vscroll;
	U32		hGC;
 	U8		quit=0;
 	U32      timerSecond1;
      U32   bt2,bt3;
//      char       tmpchar ;
//      U8      *ptrchar;

      U8      * string1 = "This is CLOCK design"; 
  


	/* 创建主窗口 */
 	mainwin = CreateWindow(	WNDCLASS_WIN,			//窗口类型(主窗口)
							"时钟设计",			//窗口标题
							WS_OVERLAPPEDWINDOW,	//窗口风格(主窗口风格的宏定义参见头文件asixwin.h)
							0,0,					//窗口左上角在逻辑屏幕中的坐标
							PHY_LCD_W,PHY_LCD_H,	//窗口的宽度和高度
							0,						//窗口的父窗口(主窗口没有父窗口)
							0,						//窗口的附加参数(主窗口没有附加参数)
							NULL);					//窗口的附加数据(主窗口没有附加数据)
	
	
	/*
	bt1 = CreateWindow( WNDCLASS_BUTTON,
						"下个菜单",
						WS_CHILD | BS_REGULAR,
						20,30,
						52,20,
						mainwin,
						0,
						NULL);
      */
	bt2 = CreateWindow( WNDCLASS_BUTTON,
						"退出",
						WS_CHILD | BS_REGULAR,
						100,200,
						32,20,
						mainwin,
						0,
						NULL);

	bt3 = CreateWindow( WNDCLASS_BUTTON,
						"时间设置",
						WS_CHILD | BS_REGULAR,
						25,200,
						50,20,
						mainwin,
						0,
						NULL);

	
	/* 用户可以在此绘图,但该图形不会被保存 */
     	hGC = GetGC();



	
//	KVMStarter();

//CreateTimer( &timerSecond1, 805, NULL, NULL, CYC_MODE|AUTO_START_MODE );
 CreateTimer( &timerSecond1, 805, NULL, NULL, CYC_MODE|AUTO_START_MODE );
	StartTimer( timerSecond1 );
     // DrawText(hGC, string1, 20,190,150,220, \
	//	HZK_16X16_FONT, GPC_BLACK, GPC_REPLACE_STYLE);

//     DrawText(hGC, ptr1, 40,90,150,190, \
//		HZK_16X16_FONT, GPC_BLACK, GPC_REPLACE_STYLE);
      TimePrint(hGC);

	// 消息处理
	while(!quit)
	{
		ASIXGetMessage(&msg, NULL, 0, 0);
		switch(msg.message)
		{
			// 在此用户加入自己的消息处理
			case WM_COMMAND:
				if (msg.lparam == bt2)
				{
				  quit = 1;
				  firstprint = 0;
				}
				if (msg.lparam == bt3)
				{
				  SearchTimeSet(hGC);
				}
				break;	
		    case   WM_TIMER:
		    	       TimeParam.second ++;
//	    	     	       CHANGETIME = 1;
		    	       TimePrint(hGC);
//		    	      quit =1;
		   	      break;

			// 关闭窗口的消息,建议用户不要更改该消息的处理
			case WM_QUIT:
				quit = 1;
				firstprint = 0;
				break;
		}
		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 
	
	}

      TimeParam.second = 0;
      TimeParam.minute = 0;
      TimeParam.hour    = 0;
	StopTimer( timerSecond1 );
	FreeTimer( timerSecond1);
	DestroyWindow( mainwin );
	
}






⌨️ 快捷键说明

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