📄 fft2.cpp
字号:
#include "temp.h"
#include "need.h"
#include <stdio.h>
#include <conio.h>
#include <kbmo.h>
#include "delay.h"
#define BOARD_STX 47
#define BOARD_STY 65
char *klet1[26]={"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M"};
char *klet2[21]={"~","!","@","#","$","%","^","&","*","(",")","_","+","{","}","|",":","\"","<",">","?"};
char *klet3[21]={"`","1","2","3","4","5","6","7","8","9","0","-","=","[","]","\\",";","'",",",".","/"};
void wordp(int);
void capch();
void kkey(int,int,int,int);
char & letter(int);
class key
{
public:
key();
key(int);
key(unsigned char);
key(int,int);
key(int,int,int);
key(int,int,char *);
void onpres();
void Onpres();
void setcode(int);
void setchar(char *);
void setchar(int,int,char *);
private:
void *keybuf;
void *keyb;
unsigned char pcode;
unsigned char rcode;
unsigned char ASCII;
unsigned short int kx,ky,kl,kh;
unsigned char at;
};
//---------------------------------------------------------------------------
key::key()
{
kx=getx();ky=gety(); kl=35,kh=35; at=0;
adkey(kx,ky,kl,kh);
moveto(kx+kl+1,ky);
}
//---------------------------------------------------------------------------
key::key(int code)
{
pcode = code;
}
//---------------------------------------------------------------------------
key::key(unsigned char code)
{
kx=getx();ky=gety(); kl=35,kh=35; pcode=code; at=0;
adkey(kx,ky,kl,kh);
moveto(kx+kl+1,ky);
}
//---------------------------------------------------------------------------
key::key(int k_x,int k_y)
{
kx=k_x,ky=k_y;kl=kh=35; at=0;
adkey(kx,ky,kl,kh);
moveto(kx+kl+1,ky);
}
//---------------------------------------------------------------------------
key::key(int k_x,int k_y,char *c)
{
kx=k_x,ky=k_y;kl=kh=35; at=0;
adkey(kx,ky,kl,kh);
moveto(kx+kl+1,ky);
setcolor(BLACK);
outtextxy(kx+9,ky+8,c);
}
//---------------------------------------------------------------------------
key::key(int k_x,int k_y,int k_l)
{
kx=k_x,ky=k_y;kl=k_l,kh=35; at=0;
adkey(kx,ky,kl,kh);
moveto(kx+kl+1,ky);
}
//---------------------------------------------------------------------------
void key::onpres()
{
if(sckey()==1) exit(0);
if(sckey()==pcode&&at==0)
{
keybuf=malloc(imagesize(kx,ky,kx+kl,ky+kh));
keyb=malloc(imagesize(kx,ky,kx+kl,ky+kh-4));
getimage(kx,ky,kx+kl,ky+kh,keybuf);
getimage(kx,ky,kx+kl,ky+kh-4,keyb);
setfillstyle(SOLID_FILL,BLACK);bar(kx,ky,kx+kl,ky+4);
putimage(kx,ky+4,keyb,COPY_PUT);
at=1; wordp(pcode);
}
if(sckey()==pcode+128&&at==1)
{
putimage(kx,ky,keybuf,COPY_PUT);
free(keybuf); free(keyb);
at=0;
}
}
//---------------------------------------------------------------------------
void key::Onpres()
{
int tcode;
tcode = sckey();
if((tcode==250||tcode==58)&&at==0)
{
keybuf=malloc(imagesize(kx,ky,kx+kl,ky+kh));
keyb=malloc(imagesize(kx,ky,kx+kl,ky+kh-4));
getimage(kx,ky,kx+kl,ky+kh,keybuf);
getimage(kx,ky,kx+kl,ky+kh-4,keyb);
setfillstyle(SOLID_FILL,BLACK);bar(kx,ky,kx+kl,ky+4);
putimage(kx,ky+4,keyb,COPY_PUT);
at=1; Delay(5); capch(); //change letter's cap
putimage(kx,ky,keybuf,COPY_PUT);
free(keybuf); free(keyb);
at=0;
}
}
//---------------------------------------------------------------------------
void key::setcode(int code)
{
pcode = code;
}
//---------------------------------------------------------------------------
void key::setchar(char *tit)
{
setcolor(BLACK);
outtextxy(kx+9,ky+8,tit);
}
//---------------------------------------------------------------------------
void key::setchar(int chardx,int chardy,char *tit)
{
setcolor(BLACK);
if(chardx>30) chardx = 30;
if(chardy>30) chardy = 30;
outtextxy(kx+chardx,ky+chardy,tit);
}
//---------------------------------------------------------------------------
void main()
{
int tuse,tusey;
char i,j;
inig(DARKGRAY); setfillstyle(SOLID_FILL,BLACK);
bar(BOARD_STX,BOARD_STY,BOARD_STX+539,BOARD_STY+179);
key esc(1);
key k0(BOARD_STX,BOARD_STY,"~"),ks1[12],bsp(getx(),BOARD_STY,586-getx());tuse=getx()-1;
//row one
key tab(BOARD_STX,BOARD_STY+36,53),k1[12],ks3(getx(),BOARD_STY+36,tuse-getx());
//row two
key capl(BOARD_STX,BOARD_STY+72,63),k2[11],enter(getx(),BOARD_STY+72,tuse-getx());
//row three
key lshf(BOARD_STX,BOARD_STY+108,81),k3[10],rshf(getx(),BOARD_STY+108,tuse-getx());
//row four
key lctrl(BOARD_STX,BOARD_STY+144,53),lwin(getx(),gety(),53),lalt(getx(),gety(),53);
key space(getx(),gety(),161),ralt(getx(),gety(),53),rwin(getx(),gety(),53);
key doc(getx(),gety(),53),rctrl(getx(),gety(),53);
//row five
//----------------------------------------------------------------------------
k0.setcode(41); for(i=0;i<12;i++) ks1[i].setcode(i+2); bsp.setcode(14);
tab.setcode(15); for(i=0;i<12;i++) k1[i].setcode(i+16); ks3.setcode(43);
capl.setcode(250); for(i=0;i<11;i++) k2[i].setcode(i+30); enter.setcode(28);
lshf.setcode(42); for(i=0;i<10;i++) k3[i].setcode(i+44); rshf.setcode(54);
space.setcode(57);
//----------------------------------------------------------------------------
arctangle(BOARD_STX-20,BOARD_STY-25,tuse+20,BOARD_STY+205,4,WHITE);
setcolor(BLACK); setlinestyle(SOLID_LINE,0,3);
rectangle(BOARD_STX-2,BOARD_STY-2,tuse+2,BOARD_STY+181);
setlinestyle(SOLID_LINE,0,0);
arctangle(BOARD_STX-4,BOARD_STY-4,tuse+4,BOARD_STY+183,4,WHITE);
setfillstyle(SOLID_FILL,LIGHTGRAY);
floodfill(BOARD_STX-6,BOARD_STY-6,WHITE);
for(i=0;i<5;i++)
arctangle(BOARD_STX-20+i,BOARD_STY-24+i/3,tuse+20-i,BOARD_STY+204-i,4,DARKGRAY);
arctangle(BOARD_STX-20,BOARD_STY-25,tuse+20,BOARD_STY+205,4,BLACK);
//----------------------------------------------------------------------------
for(i=1;i<13;i++) ks1[i-1].setchar(8,7,klet2[i]);
for(i=0;i<10;i++) k1[i].setchar(klet1[i]);
k1[10].setchar(8,7,klet2[13]),k1[10].setchar(8,18,klet3[13]);
k1[11].setchar(8,7,klet2[14]),k1[11].setchar(7,19,klet3[14]);
ks3.setchar(6,7,klet2[15]),ks3.setchar(8,18,klet3[15]);
for(i=0;i<9;i++) k2[i].setchar(klet1[i+10]);
for(i=0;i<7;i++) k3[i].setchar(klet1[i+19]);
//----------------------------------------------------------------------------
while(1)
{
esc.onpres(), k0.onpres();
for(i=0;i<12;i++) ks1[i].onpres();bsp.onpres();
tab.onpres();
for(i=0;i<12;i++) k1[i].onpres(); ks3.onpres(); capl.Onpres();
lshf.onpres(),rshf.onpres(); enter.onpres();
for(i=0;i<11;i++)
k2[i].onpres();
for(i=0;i<10;i++)
k3[i].onpres();
space.onpres();
}
}
//----------------------------------------------------------------------------
void wordp(int code)
{
gotoxy(10,20); printf("%d",code);
}
void capch()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -