在x,y位置显示一个输入条,可以读取length长度的字符到string中。
#define KEY_F1 28
#define LEFT_ARROW 23
#define KEY_ENTER 13
#define TRUE 1
#define FALSE 0
//读取键盘输入函数
void Input(int string,int x,int y,int length)
{
int c;//字符缓存
char p;//指针
char len[256];//字符长度储存
char Caps;
char mode;
Caps=TRUE;
mode=3;
p=0;
do
{
Box(x+p*6,y+13,x+p*6+6,y+14,1,1);
c=GetWord(mode);
if (c==KEY_F2||c==LEFT_ARROW)
{
if(p!=0)
{
p=p-len;
*(string+p)=0;
}
}/*else if(c==KEY_SHIFT)
{
if(mode==2)
mode=0;
else
mode++;
}*/
/*else if(c==KEY_CAPS)
{
if(Caps==FALSE)
Caps=TRUE;
else
Caps=FALSE;
}*/
else if(c==KEY_ENTER)
{
*(string+p)=0;
break;
}else
{
if ((c&0xff00)==0 && isprint(c)&&p<length)
{
//if(Caps==TRUE) c=toupper(c);
*(string+p)=c;
p++;
len=1;
*(string+p)=0;
}else if (c<0&&p<length-1)
{
memset(_TEXT+4*20,' ',20); //清除提示行
*(string+p)=c;
*(string+p+1)=c>>8;
p=p+2;
len=2;
*(string+p)=0;
}
}
Refresh();
TextOut(x,y,string,0x43);
}while(p>=0)
}
[此贴子已经被作者于2005-4-7 12:59:18编辑过]
|