C语言实现图形界面登陆窗口Word格式.docx
《C语言实现图形界面登陆窗口Word格式.docx》由会员分享,可在线阅读,更多相关《C语言实现图形界面登陆窗口Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
//初始化图形界面
IMAGEImg1;
//声明一个IMAGE变量
IMAGEImg2(640,480);
charinput1[LEN_A];
//用于接收输入的字符串
charinput2[LEN_P];
intj;
InputAPwordaccount;
loadimage(&
Img1,_T("
"
));
//加载图片
SetWorkingImage(&
Img1);
//设置当前绘图设备为Img1
setlinestyle(PS_SOLID,NULL,2);
//设置线的样式
setfont(64,0,"
华文隶书"
);
//设置字体的样式和大小
settextcolor(RGB(134,0,255));
//设置字体的颜色
setlinecolor(RGB(16,16,16));
//设置线的颜色
setbkmode(TRANSPARENT);
//设置字体的背景为透明
outtextxy(50,50,_T("
A用户登录"
//显示汉字
settextcolor(RGB(0,0,0));
rectangle(50,150,350,340);
//画矩形框
rectangle(254,515,302,585);
//画一个矩形框
fillrectangle(100,280,173,315);
//登录框
fillrectangle(223,280,296,315);
//取消框
SetWorkingImage();
//恢复当前绘图设备为默认设备
putimage(0,0,&
//显示图片
do{
name();
//显示文字信息
setbkmode(OPAQUE);
//设置字体背景为默认
setbkcolor(RGB(255,255,255));
cursor();
//显示输入框以及闪烁的光标
for(j=0;
LEN_A;
j++){//限制输入,最多允许输入LNE位数据
input1[j]=getch();
//读取键盘输入的字符并存入数组
outtextxy(161+8*j,193,input1[j]);
//将字符显示在图片上
if(input1[j]==8){//按删除键时的操作
input1[j-1]=0;
//字符数组内容删除一位
outtextxy(161+8*j,193,"
"
//将字符遮掩
outtextxy(161+8*(j-1),193,"
j-=2;
//数组坐标后退两个
if(j<
=-1){//当回退到头时的处理
input1[0]='
\0'
;
//对数组进行标记
break;
//退出本次输入
}
continue;
}elseif(input1[j]==13){//按回车键时的处理
input1[j]='
//将数组的最后一个数据标记为'
if(j==0){//无任何输入,且按下回车时的处理
outtextxy(161+8*j,193,"
//将回车显示的字符遮掩
outtextxy(161+8*(j-1),193,"
//将回车显示的字符遮掩
//对数组进行进行标记
break;
}
}
cursor2();
//光标聚到下一个输入框的开始位置
j<
LEN_P;
j++){//密码输入
input2[j]=getch();
//获取从键盘输入的字符
outtextxy(161+8*j,234,"
*"
//以*号显示,起到遮掩密码的作用
if(input2[j]==8){//按下删除键时的处理
input2[j-1]=0;
//对数组进行处理
outtextxy(161+8*j,234,"
//对需要进行删除处理的字符进行遮掩
outtextxy(161+8*(j-1),234,_T("
//对需要删除进行处理的字符进行遮掩
j-=2;
=-1){//当删除到头时进行的操作
input2[0]='
}elseif(input2[j]==13){//按下回车时的操作
input2[j]='
//将数组的最后一位标记为‘\0’
if(j==0){//无任何操作,直接进行回车输入时的操作
outtextxy(161+8*j,234,"
//对输入回车时产生的字符进行遮掩
outtextxy(161+8*(j-1),234,_T("
//结束本次输入
getimage(&
Img2,0,0,640,480);
//保存当前显示的界面
}while((input1[0]=='
)&
&
(input2[0]=='
//当第一个或第二个框有一个未输入时则继续循环输入
switch(MouseEvent(Img2)){
case1:
{
=1;
strcpy将输入的字符存入结构体
将输入的密码存入结构体
break;
case2:
=2;
}
returnaccount;
closegraph();
}
voidname(void)//显示文字信息函数
setfont(25,0,"
宋体"
//设置字体的大小和样式
outtextxy(90,190,_T("
账号"
outtextxy(90,233,_T("
密码"
outtextxy(111,285,_T("
登录"
outtextxy(234,285,_T("
取消"
setfont(18,0,"
//setbkmode(OPAQUE);
voidcursor(void)//闪烁光标的作用
while
(1){//如果键盘没有进行输入这循环闪烁
inputbox();
if(kbhit()){//当键盘有反应时kbhit()会返回一个非零值
//退出闪烁
Sleep(300);
//延时
setlinestyle(PS_SOLID,NULL,2);
//设置线的样式为PS_SOLID,宽度为2
line(161,194,162,210);
//光标的描绘
voidcursor2(void)//第二个光标
Sleep(30);
//设置字体样式
line(162,234,163,251);
}while(!
kbhit());
//当键盘有反应时kbhit()会返回一个非零值
voidinputbox(void)//描绘两个输入框
inti;
for(i=0;
i<
2;
i++){
bar(150,188+41*i,300,216+41*i);
//账户栏和密码输入栏
setcolor(RGB(0,0,0));
rectangle(150,188+41*i,300,216+41*i);
intMouseEvent(IMAGEImg)//鼠标判断
MOUSEMSGm;
//声明一个鼠标变量
intvalue=0;
//返回值
while(!
value){
m=GetMouseMsg();
//获取鼠标的信息
switch{
case{
if(>
=100&
<
=173)&
=280&
=315)){//对鼠标的X,Y坐标进行判断
SetWorkingImage(&
Img);
//设置当前的绘图设备
setlinestyle(PS_SOLID,NULL,2);
setlinecolor(RGB(252,15,0));
//线的颜色,红色
settextcolor(RGB(252,15,0));
//字体颜色,红色
setfont(25,0,"
setbkmode(TRANSPARENT);
fillrectangle(100,280,173,315);
outtextxy(111,285,_T("
SetWorkingImage();
//恢复当前的绘图设备
putimage(0,0,&
//显示当前的图画
}elseif(>
=223&
=296)&
fillrectangle(223,280,296,315);
outtextxy(234,285,_T("
}else{
setlinecolor(RGB(134,0,255));
settextcolor(RGB(134,0,255));
//字体颜色,黑色
setbkcolor(RGB(255,255,255));
///字体背景色,白色
}
=315)){//登陆按键范围
value=1;
=315)){//取消按键范围
value=2;
returnvalue;
voidmain()
longinta;
account=menu2();
a=system("
cls"
printf("
这是测试的密码:
%ld"
a);
%s"
getchar();
getchar();