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

📄 testasix.c

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 C
📖 第 1 页 / 共 2 页
字号:
	bt1 = CreateWindow( WNDCLASS_BUTTON,

						"按键",

						WS_CHILD | BS_REGULAR,

						20,30,

						32,20,

						mainwin,

						0,

						NULL);

	bt2 = CreateWindow( WNDCLASS_BUTTON,

						"左",

						WS_CHILD | BS_REGULAR,

						20,55,

						32,20,

						mainwin,

						0,

						NULL);

	bt3 = CreateWindow( WNDCLASS_BUTTON,

						"右",

						WS_CHILD | BS_REGULAR,

						20,80,

						32,20,

						mainwin,

						0,

						NULL);

	bt4 = CreateWindow( WNDCLASS_BUTTON,

						"清除",

						WS_CHILD | BS_REGULAR,

						60,30,

						32,20,

						mainwin,

						0,

						NULL);

	bt5 = CreateWindow( WNDCLASS_BUTTON,

						"退格",

						WS_CHILD | BS_REGULAR,

						60,55,

						32,20,

						mainwin,

						0,

						NULL);

	bt6 = CreateWindow( WNDCLASS_BUTTON,

						"删除",

						WS_CHILD | BS_REGULAR,

						60,80,

						32,20,

						mainwin,

						0,

						NULL);

	

	hGC = GetGC();

	

	edit1 = CreateWindow( WNDCLASS_EDITOR,

						"Good Night!",

						WS_CHILD | ES_SINGLE_REGULAR,

						20,105,

						60,20,

						mainwin,

						30,

						NULL);

	edit2 = CreateWindow( WNDCLASS_EDITOR,

						NULL,

						WS_CHILD | ES_SINGLE_REGULAR,

						20,130,

						60,20,

						mainwin,

						30,

						NULL);

	

	while(!quit)

	{

		ASIXGetMessage(&msg, NULL, 0, 0);

		switch(msg.message)

		{

			case WM_COMMAND:

				if( msg.lparam == bt1 )

				{

					edctrl = (struct ed_ctrl *)( FocusWindow->ctrl_str );

					ed_msg.message = WM_CHAR;

					ed_msg.lparam = (U32) FocusWindow;

					ed_msg.wparam = *(pkey + (i++)%7 );

					ed_msg.data = (void *)edctrl;



					AdvSendMessage(CurTask->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);

				}else

				if( msg.lparam == bt2 )

				{

					edctrl = (struct ed_ctrl *)( FocusWindow->ctrl_str );

					ed_msg.message = WM_CHAR;

					ed_msg.lparam = (U32) FocusWindow;

					ed_msg.wparam = MOVE_LEFT;

					ed_msg.data = (void *)edctrl;



					AdvSendMessage(CurTask->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);

				}else

				if( msg.lparam == bt3 )

				{

					edctrl = (struct ed_ctrl *)( FocusWindow->ctrl_str );

					ed_msg.message = WM_CHAR;

					ed_msg.lparam = (U32) FocusWindow;

					ed_msg.wparam = MOVE_RIGHT;

					ed_msg.data = (void *)edctrl;



					AdvSendMessage(CurTask->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);

					

				}else

				if( msg.lparam == bt4 )

				{

					edctrl = (struct ed_ctrl *)( FocusWindow->ctrl_str );

					ed_msg.message = WM_CHAR;

					ed_msg.lparam = (U32) FocusWindow;

					ed_msg.wparam = ESCAPE;

					ed_msg.data = (void *)edctrl;



					AdvSendMessage(CurTask->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);

									

					// test code for repaint and focus

					MessageBox((U32)CurWindow,"test", "!!", MB_YESNOCANCEL) ;

				}else

				if( msg.lparam == bt5 )

				{

					edctrl = (struct ed_ctrl *)( FocusWindow->ctrl_str );

					ed_msg.message = WM_CHAR;

					ed_msg.lparam = (U32) FocusWindow;

					ed_msg.wparam = BACKSPACE;

					ed_msg.data = (void *)edctrl;



					AdvSendMessage(CurTask->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);					

				}else

				if( msg.lparam == bt6 )

				{

					edctrl = (struct ed_ctrl *)( FocusWindow->ctrl_str );

					ed_msg.message = WM_CHAR;

					ed_msg.lparam = (U32) FocusWindow;

					ed_msg.wparam = DELETE;

					ed_msg.data = (void *)edctrl;



					AdvSendMessage(CurTask->id, (P_MESSAGE)(&ed_msg), NO_SWAP_TASK);

				}

				break;

			

			case WM_QUIT:

				quit = 1;

				break;

		}

		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 

	}



	DestroyWindow( mainwin );



	EndofTask();

}



/********************************************************************

*   Function test_kb()  

*	param in:	void		

*	param out: 	void	

*	description: 测试键盘控件	

********************************************************************/

void test_kb( void )	// test keybar

{

	MSG 	msg;

 	U32		mainwin;

	U32		hGC;

	U32		edit1, edit2;

	U32		keyboard;

 	U8		quit=0;



 	mainwin = CreateWindow(	WNDCLASS_WIN,			

							"pessia!!",				

							WS_OVERLAPPEDWINDOW,	

							0,0,					

							PHY_LCD_W,PHY_LCD_H,	

							0,						

							0,						

							NULL);



	edit1 = CreateWindow( WNDCLASS_EDITOR,

						NULL,

						WS_CHILD | ES_SINGLE_REGULAR,

						20,40,

						60,20,

						mainwin,

						30,

						NULL);



	edit2 = CreateWindow( WNDCLASS_EDITOR,

						NULL,

						WS_CHILD | ES_SINGLE_REGULAR,

						20,80,

						60,20,

						mainwin,

						30,

						NULL);

	keyboard = CreateWindow( WNDCLASS_KEYBAR,

						NULL,

						WS_CHILD,

						0,130,

						118,16,

						mainwin,

						0,

						NULL);



	hGC = GetGC();

	

	SetFocus( edit1 );



	while(!quit)

	{

		ASIXGetMessage(&msg, NULL, 0, 0);

		switch(msg.message)

		{

			case WM_QUIT:

				quit = 1;

				break;

		}

		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 

	}



	DestroyWindow( mainwin );



	EndofTask();



}



/********************************************************************

*   Function test_med()  

*	param in:	void		

*	param out: 	void	

*	description: 测试多行编辑器

********************************************************************/

void test_med( void )	// test multi_line editor

{

	MSG 	msg;

 	U32		mainwin;

	U32		hGC;

	U32		edit;

	//U32		keyboard;

 	U8		quit=0;

 	



 	mainwin = CreateWindow(	WNDCLASS_WIN,			

							"pessia!!",				

							WS_OVERLAPPEDWINDOW,	

							0,0,					

							PHY_LCD_W,PHY_LCD_H,	

							0,						

							0,						

							NULL);



	edit = CreateWindow( WNDCLASS_EDITOR,

						"欢迎使用多行编辑测试",

						WS_CHILD | ES_MULTI_REGULAR,

						20,40,

						60,100,

						mainwin,

						0,

						NULL);



//	keyboard = CreateWindow( WNDCLASS_KEYBAR,

//						NULL,

//						WS_CHILD,

//						0,130,

//						118,16,

//						mainwin,

//						0,

//						NULL);



	hGC = GetGC();



	mainwin = CreateWindow(	WNDCLASS_WIN,			

							"pessia!!",				

							WS_OVERLAPPEDWINDOW,	

							0,0,					

							PHY_LCD_W,PHY_LCD_H,	

							0,						

							0,						

							NULL);

	

							

	while(!quit)

	{

		ASIXGetMessage(&msg, NULL, 0, 0);

		switch(msg.message)

		{

			case WM_QUIT:

				quit = 1;

				break;

		}

		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 

	}



	DestroyWindow( mainwin );



	EndofTask();



}



void d_task(void)

{

	MSG 	msg;

 	U32		mainwin;

	U32		hGC;

 	U8		quit=0;

 	//int		i=0;

 	char		buf[1024];

 	int		readcount;

 	int		timeout=0;

 	

 	hGC = GetGC();

	

	mainwin = CreateWindow(	WNDCLASS_WIN,			

							"uart1-s",				

							WS_OVERLAPPEDWINDOW,	

							0,0,					

							PHY_LCD_W,PHY_LCD_H,	

							0,						

							0,						

							NULL);



	SysOpenDev(UART1_ID, -1);

	while(1)

	{

		readcount=SysReadDev(UART1_ID,&buf,1000,timeout);

		SysWriteDev(UART1_ID,buf,readcount,0);



		SysWriteDev(UART1_ID,"------------",8,0);

		

		timeout +=20;

		if(timeout>20000)

			timeout = 0;

	}

	SysCloseDev(UART1_ID);

	

	while(!quit)

	{

		ASIXGetMessage(&msg, NULL, 0, 0);

		switch(msg.message)

		{

			case WM_QUIT:

				quit = 1;

				break;

		}

		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 

	}



	DestroyWindow( mainwin );



	EndofTask();

}



void e_task(void)

{

	MSG 	msg;

 	U32		mainwin;

	U32		hGC;

 	U8		quit=0;

 	int		i=0, count=0;

 	char	buf[200],tt[2];

 	int		sx = 10, sy = 10;

 	

 	hGC = GetGC();



	tt[1] = 0;

	

	mainwin = CreateWindow(	WNDCLASS_WIN,			

							"uart1-r",				

							WS_OVERLAPPEDWINDOW,	

							0,0,					

							PHY_LCD_W,PHY_LCD_H,	

							0,						

							0,						

							NULL);

							

	while(1)

	{

		//SysReadDev(UART0_ID,&buf[count++],1);

		//SysReadDev(UART1_ID,&buf[count++],1);

		while(i<count)

		{

			tt[0] = buf[i];

			sy += (i%8)*12;

			TextOut(hGC, tt, sx+(i%8)*12, sy, 0, GPC_BLACK, GPC_REPLACE_STYLE);

			i++;

		}

	}

	

	while(!quit)

	{

		ASIXGetMessage(&msg, NULL, 0, 0);

		switch(msg.message)

		{

			case WM_QUIT:

				quit = 1;

				break;

		}

		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 

	}



	DestroyWindow( mainwin );



	EndofTask();

	

	

}

⌨️ 快捷键说明

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