C语言实现图形界面登陆窗口_第1页
C语言实现图形界面登陆窗口_第2页
C语言实现图形界面登陆窗口_第3页
C语言实现图形界面登陆窗口_第4页
C语言实现图形界面登陆窗口_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、纯 C 语言实现图形界面登陆窗口是界面下编程工具是:请根据个人需要对源代码进行修改使用,图片放在工程文件夹中。新建时应该将文件后缀设置为.cpp以下是程序灯源代码:#include<>#include<>#include<>#include<>#include<>#include<>#define LEN_A 20/ 账户长度#define LEN_P 10/ 密码长度typedef struct Accountchar name20;long int password;InAccount;typedef struct i

2、nputAPwordInAccount account;int flag;InputAPword;void inputbox(void);void cursor(void);void cursor2(void);void name(void);int MouseEvent(IMAGE);InputAPword menu2(void)initgraph(640,480);/ 初始化图形界面IMAGE Img1;/ 声明一个IMAGE变量IMAGE Img2(640,480);/ 声明一个IMAGE变量char input1LEN_A;/用于接收输入的字符串char input2LEN_P;/用于

3、接收输入的字符串int j;InputAPword account;loadimage(&Img1,_T("");/ 加载图片SetWorkingImage(&Img1);/ 设置当前绘图设备为Img1setlinestyle(PS_SOLID, NULL, 2);/ 设置线的样式setfont(64,0," 华文隶书");/ 设置字体的样式和大小settextcolor(RGB(134,0,255);/ 设置字体的颜色setlinecolor(RGB(16,16,16);/ 设置线的颜色setbkmode(TRANSPARENT);/设

4、置字体的背景为透明/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();/ 恢复当前绘图设备为默认设备doname();/ 显示文字信息setbkmode(OPAQUE);/设置字体背景

5、为默认setbkcolor(RGB(255,255,255);cursor();/ 显示输入框以及闪烁的光标for(j=0;LEN_A;j+)/ 限制输入,最多允许输入LNE位数据input1j=getch();/ 读取键盘输入的字符并存入数组outtextxy(161+8*j,193,input1j);/ 将字符显示在图片上if(input1j=8)/按删除键时的操作input1j-1=0;/字符数组内容删除一位outtextxy(161+8*j,193," ");/ 将字符遮掩outtextxy(161+8*(j-1),193," ");/ 将字符遮

6、掩j -=2;/ 数组坐标后退两个if(j<=-1)/ 当回退到头时的处理input10='0'/ 对数组进行标记break;/ 退出本次输入continue;else if(input1j=13)/ 按回车键时的处理input1j='0'/ 将数组的最后一个数据标记为'0'if(j=0)/ 无任何输入,且按下回车时的处理outtextxy(161+8*j,193,"");/ 将回车显示的字符遮掩outtextxy(161+8*(j-1),193,"");/ 将回车显示的字符遮掩input10=

7、9;0'/ 对数组进行进行标记break;/ 退出本次输入 setbkmode(OPAQUE);/设置字体背景为默认setbkcolor(RGB(255,255,255);cursor2();/ 光标聚到下一个输入框的开始位置for(j=0;j<LEN_P;j+)/密码输入input2j=getch();/获取从键盘输入的字符outtextxy(161+8*j,234,"*");/ 以 *号显示,起到遮掩密码的作用if(input2j=8)/按下删除键时的处理input2j-1=0;/对数组进行处理outtextxy(161+8*j,234,"&qu

8、ot;);/ 对需要进行删除处理outtextxy(161+8*(j-1),234,_T("");/ 对需要删除进行处理的字符进行遮掩j-=2;/ 对数组进行处理if(j<=-1)/ 当删除到头时进行的操作input20='0'/ 对数组进行标记break;/ 退出本次输入continue;else if(input2j=13)/ 按下回车时的操作outtextxy(161+8*j,234," ");input2j='0'/ 将数组的最后一位标记为0 if(j=0)/ 无任何操作,直接进行回车输入时的操作outtex

9、txy(161+8*j,234,"");/ 对输入回车时产生的字符进行遮掩outtextxy(161+8*(j-1),234,_T("");/ 对输入回车时产生的字符进行遮掩input20='0'/ 对数组进行标记break;/ 结束本次输入getimage(&Img2,0,0,640,480);/ 保存当前显示的界面while(input10='0')&&(input20='0');/第一个或第二个框有一个未输入时则继续循环输入switch(MouseEvent(Img2)case

10、 1:=1;strcpy 将输入的字符存入结构体将输入的密码存入结构体break;case 2:=2;return account;closegraph();void name(void)/ 显示文字信息函数setfont(25,0," 宋体 ");/ 设置字体的大小和样式setbkmode(TRANSPARENT);settextcolor(RGB(0,0,0);outtextxy(90,190,_T("账号");/ 显示汉字outtextxy(90,233,_T("密码");outtextxy(111,285,_T("登

11、录");outtextxy(234,285,_T("取消");setfont(18,0," 宋体 ");/setbkmode(OPAQUE);/ 设置字体背景为默认void cursor(void)/ 闪烁光标的作用while(1)/ 如果键盘没有进行输入这循环闪烁inputbox();if(kbhit()/ 当键盘有反应时kbhit() 会返回一个非零值break;/ 退出闪烁Sleep(300);/ 延时setlinestyle(PS_SOLID,NULL,2);/ 设 置 线 的 样 式 为PS_SOLID,宽度为2line(161,19

12、4,162,210);/ 光标的描绘Sleep(300);/ 延时void cursor2(void)/ 第二个光标doSleep(30);/ 延时setlinestyle(PS_SOLID,NULL,2);/ 设置字体样式line(162,234,163,251);/ 光标的描绘Sleep(30);/ 延时while(!kbhit();/ 当键盘有反应时kbhit() 会返回一个非零值void inputbox(void)/ 描绘两个输入框int i;for(i=0;i<2;i+)bar(150,188+41*i,300,216+41*i);/ 账户栏和密码输入栏setcolor(RG

13、B(0,0,0);rectangle(150,188+41*i,300,216+41*i);int MouseEvent(IMAGE Img)/ 鼠标判断MOUSEMSG m声明一个鼠标变量;/int value=0;/ 返回值while(!value)m=GetMouseMsg();/获取鼠标的信息switchcaseif(>=100&&<=173)&&>=280&&<=315)/ 对 鼠 标 的X,Y坐标进行判断SetWorkingImage(&Img);/ 设置当前的绘图设备setlinestyle(PS_S

14、OLID,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,&Img);/ 显示当前的图画else if(>=223&

15、amp;&<=296)&&>=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(223,280,296,31

16、5);/ 取消框outtextxy(234,285,_T(" 取消 ");SetWorkingImage();/ 恢复当前的绘图设备putimage(0,0,&Img);/ 显示当前的图画elseSetWorkingImage(&Img);/ 设置当前的绘图设备setlinecolor(RGB(134,0,255);/设置线的颜色settextcolor(RGB(134,0,255);/字体颜色,黑色fillrectangle(100,280,173,315);/登录框fillrectangle(223,280,296,315);/取消框setbkcolor

17、(RGB(255,255,255);/ 字 体 背 景色,白色setfont(25,0," 宋体 ");/ 设置字体的大小和样式outtextxy(111,285,_T("登录");outtextxy(234,285,_T("取消");SetWorkingImage();/ 恢复当前绘图设备为默认设备putimage(0,0,&Img);break;caseif(>=100&&<=173)&&>=280&&<=315)/ 登 陆 按 键 范围value=1;else if(&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论