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

📄 asix_key.c

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%3 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_4:
							Enable( kbctrl,KEY_4 );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"G",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"H",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"I",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%3 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_5:
							Enable( kbctrl,KEY_5 );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"J",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"K",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"L",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%3 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_6:
							Enable( kbctrl,KEY_6 );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"M",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"N",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"O",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%3 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_7:
							Enable( kbctrl,KEY_7 );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"P",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"Q",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"R",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"S",kbctrl->x+18+kbctrl->boxw*3+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%4 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%4 == 3 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%4 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%4 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_8:
							Enable( kbctrl,KEY_8 );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"T",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"U",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"V",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%3 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%3 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_9:
							Enable( kbctrl,KEY_9 );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"W",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"X",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"Y",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"Z",kbctrl->x+18+kbctrl->boxw*3+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%4 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%4 == 3 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%4 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%4 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_Asterisk:
							Enable( kbctrl,KEY_Asterisk );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"+",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"-",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"*",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"/",kbctrl->x+18+kbctrl->boxw*3+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"=",kbctrl->x+18+kbctrl->boxw*4+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 3 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 4 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*4+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%5 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*4+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
							case KEY_NO:
							Enable( kbctrl,KEY_NO );
							if ( kbctrl->keycount == 1 )
							{
								TextOut(pGC,"#",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"`",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"^",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"_",kbctrl->x+18+kbctrl->boxw*3+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								TextOut(pGC,"|",kbctrl->x+18+kbctrl->boxw*4+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 2 )
							{
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 3 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 4 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*2+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( kbctrl->keycount%5 == 0 )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*3+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*4+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							else if ( ( kbctrl->keycount%5 == 1 )&&( kbctrl->keycount != 1 ) )
							{
								InvRec( pGC,kbctrl->x+18+kbctrl->boxw*4+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
							}
							break;
						}
						StartTimer( kbctrl->timerId );
					}
				}else
				if( kbctrl->tabflag%4 == 2 )
				{
					if( kbctrl->keycount == 0 )
						kbctrl->prekey=kbctrl->curkey;
					if( kbctrl->prekey != kbctrl->curkey )
					{
						kb_msg.wparam=ProcessSmall( kbctrl );
						Suspend( kbctrl );
						kbctrl->keycount=0;
						kbctrl->prekey=kbctrl->curkey;
						//kb_msg.lparam=kbctrl->windowid;
						//kb_msg.lparam=FocusWindow->wnd_id;
						kb_msg.lparam=((ASIX_WINDOW *)GetFocus( ))->wnd_id;
						kb_msg.message=WM_CHAR;
						ClearRec( pGC,GPC_WHITE,kbctrl->x+18+1,kbctrl->y+1,
										kbctrl->boxw*5,kbctrl->boxw,GPC_REPLACE_STYLE );
						AdvSendMessage(GetCurTask()->id,(P_MESSAGE)(&kb_msg),NO_SWAP_TASK);
						goto SHOW_NEW_CHAR_small;/* show the new char */	
					}
					else
					{
					SHOW_NEW_CHAR_small:
						kbctrl->keycount++;
						switch( kbctrl->prekey )
						{
							case KEY_0:
							Enable( kbctrl,KEY_0 );
							if( kbctrl->keycount <= 5 )
							{
								SHOW_FIRST_5_CHAR_0_SMALL:
								if ( kbctrl->keycount == 1 )
								{
									ClearRec( pGC,GPC_WHITE,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw*5,kbctrl->boxw,GPC_REPLACE_STYLE );
									TextOut(pGC," ",kbctrl->x+18+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
									TextOut(pGC,".",kbctrl->x+18+kbctrl->boxw+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
									TextOut(pGC,"!",kbctrl->x+18+kbctrl->boxw*2+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
									TextOut(pGC,"\"",kbctrl->x+18+kbctrl->boxw*3+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
									TextOut(pGC,",",kbctrl->x+18+kbctrl->boxw*4+5,kbctrl->y+2,0,GPC_BLACK,GPC_REPLACE_STYLE);
									InvRec( pGC,kbctrl->x+18+1,kbctrl->y+1,kbctrl->boxw,kbctrl->boxw);
								}
								else if ( kbctrl->keycount == 2 )

⌨️ 快捷键说明

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