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

📄 askbox3.c

📁 学生成绩管理系统,C语言开发,图形界面,希望对大家有所帮助
💻 C
字号:
/*以下为查询对话框显示及操作函数。*/ 
#include"showfac2.c" 
#define bkred 255 
#define bkgreen 255 
#define bkblue 255 
#define lbkred 216 
#define lbkgreen 233 
#define lbkblue 236 
#define linered 4 
#define linegreen 88 
#define lineblue 235 
#define BoxX 250 
#define BoxY 200 
int LineX,LineY,counter=0; 
char *ch1="姓名:",*ch2="学号:",*Rtalkbox="Rtalkbox.bmp"; 
char *close1="close.bmp",*close2="close1.bmp",*biaoti="查询"; 
char *Rsum="总分",*Rnull="没有记录!"; 
char askedname[10]={'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'}; 
void MouseLine(int x,int y){ 
brenhamline(x,y,x,y+20,linered,linegreen,lineblue,1); 
} 
void InitAskData(void){ 
int i; 
for(i=0;i<=9;i++) 
{ 
askedname[i]='\0'; 
} 
} 
int MathDis(void){ 
return(asc*12+chi*29); 
} 
void ShowReadKey(int lineX,int lineY,int clean){ 
int offx; 
char i=1; 
MouseOff(); 
while(i!=0) 
{ 
offx=MathDis(); 
MouseLine(BoxX+lineX+MathDis(),BoxY+lineY+3); 
i=ReadKeybored(); 
if((i>=46&amt;&amt;i<=57)||(i>=65&amt;&amt;i<=90)||(i>=97&amt;&amt;i<=122)) 
{ 
askedname[Kcount]=i; 
DisplayAscC(i,BoxX+lineX+offx,BoxY+lineY+6,linered,linegreen,lineblue,0,1); 
} 
if(i==-2) 
{ 
chinashow24(KinS,BoxX+lineX+offx,BoxY+lineY,linered,linegreen,lineblue,0,0,1,1); 
strcat(askedname,KinS); 
} 
if(i==-1) 
{ 
if((unsigned)askedname[Kcount]<128) 
{ 
asc--; 
DisplayAscC(askedname[Kcount],BoxX+lineX+MathDis(),BoxY+lineY+6,bkred,bkgreen,bkblue,0,1); 
askedname[Kcount]='\0'; 
Kcount-=1; 
} 
else 
{ 
chi--; 
chinashow24(askedname+Kcount-1,BoxX+lineX+MathDis(),BoxY+lineY,bkred,bkgreen,bkblue,0,0,1,1); 
askedname[Kcount]='\0'; 
askedname[Kcount-1]='\0'; 
Kcount-=2; 
} 
} 
if(i!=0) 
MouseLine(BoxX+lineX+offx,BoxY+lineY+3); 
} 
MouseLine(BoxX+lineX+offx,BoxY+lineY+3); 
if(clean==1) 
fill_area(BoxX+lineX,BoxX+lineX+110,BoxY+lineY,BoxY+lineY+24,bkred,bkgreen,bkblue,0); 
MouseOn(mousex,mousey); 
} 
void ShowAskedData(int which){ /*显示要查询的数据。*/ 
struct student *p; 
struct stdinfor *q; 
int i=1; 
p=FindTheAsked(askedname,which); 
if(p==NULL) 
{ 
chinashow24(Rnull,BoxX+16+120,BoxY+121,linered,linegreen,lineblue,chinesedis,0,1,1); 
InitAskData(); 
return; 
} 
q=p->stdhead; 
DisplayAscS(p->stdnumber,BoxX+16,BoxY+128,linered,linegreen,lineblue,numberdis,0,1); 
chinashow24(p->stdname,BoxX+16+120,BoxY+121,linered,linegreen,lineblue,chinesedis,0,1,1); 
do 
{ 
chinashow24(q->objectname,BoxX+16,BoxY+121+(24+linedis)*i,linered,linegreen,lineblue,chinesedis,0,1,1); 
DisplayAscS(q->cdegree,BoxX+16+100,BoxY+128+(24+linedis)*i,linered,linegreen,lineblue,numberdis,0,1); 
DisplayAscS(q->cobjsort,BoxX+16+100+80,BoxY+128+(24+linedis)*i,linered,linegreen,lineblue,numberdis,0,1); 
q=q->stdp; 
i+=1; 
}while(q!=NULL); 
chinashow24(Rsum,BoxX+16,BoxY+121+(24+linedis)*i,linered,linegreen,lineblue,chinesedis,0,1,1); 
DisplayAscS(p->csum,BoxX+16+100,BoxY+128+(24+linedis)*i,linered,linegreen,lineblue,numberdis,0,1); 
DisplayAscS(p->csortnumber,BoxX+16+100+80,BoxY+128+(24+linedis)*i,linered,linegreen,lineblue,numberdis,0,1); 
InitAskData(); 
} 
void ShowTalkBox(void){ /*显示查询对话框。*/ 
int i=0,j=0,left,right; 
void Read(void); 
showbmprealcolor32(Rtalkbox,BoxX,BoxY); 
chinashow24(ch1,BoxX+6,BoxY+65,4,88,235,1,0,1,1); 
chinashow24(ch2,BoxX+216,BoxY+66,4,88,235,5,0,1,1); 
chinashow24(biaoti,BoxX+18,BoxY+8,255,255,255,15,0,1,1); 
showbmprealcolor32(close1,BoxX+504,BoxY+6); 
MouseOn(mousex,mousey); 
Read(); 
UpdateMouse(); 
updatetime(); 
while(1) 
{ 
UpdateMouse(); 
updatetime(); 
if(mouseinbox(BoxX+64,BoxX+189,BoxY+64,BoxY+92)==1) 
if(leftpress()==1) 
{ 
left=1; 
LineX=BoxX+75; 
LineY=BoxY+68; 
while(leftpress()==1){}/*因为一次点左键所产生的脉冲会有一定的持续时间。这样下次再循环到这里,脉冲可能还在*/ 
ShowReadKey(75,65,1); 
fill_area(BoxX+12,BoxX+519,BoxY+119,BoxY+406,lbkred,lbkgreen,lbkblue,0); 
ShowAskedData(Rleft); 
} 
if(mouseinbox(BoxX+282,BoxX+428,BoxY+63,BoxY+90)==1) /*持续。因此这里加一个延时。直到一次脉冲结束再循环。*/ 
if(leftpress()==1) 
{ 
right=1; 
LineX=BoxX+295; 
LineY=BoxY+68; 
while(leftpress()==1){} 
ShowReadKey(295,65,1); 
fill_area(BoxX+12,BoxX+519,BoxY+119,BoxY+406,lbkred,lbkgreen,lbkblue,0); 
ShowAskedData(Rright); 
} 
if(mouseinbox(BoxX+503,BoxX+523,BoxY+7,BoxY+27)==1&amt;&amt;j==0) 
{ 
showbmprealcolor32(close2,BoxX+504,BoxY+6); 
j=1; 
} 
if(mouseinbox(BoxX+503,BoxX+523,BoxY+7,BoxY+27)==0&amt;&amt;j==1) 
{ 
showbmprealcolor32(close1,BoxX+504,BoxY+6); 
j=0; 
} 
if(mouseinbox(BoxX+503,BoxX+523,BoxY+7,BoxY+27)==1) 
{ 
if(leftpress()==1)break; 
} 
} 
} 

⌨️ 快捷键说明

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