《C语言实现图形界面登陆窗口12471.pdf》由会员分享,可在线阅读,更多相关《C语言实现图形界面登陆窗口12471.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、纯 C 语言实现图形界面登陆窗口 一下是界面图:编程工具是:请根据个人需要对源代码进行修改使用,图片放在工程文件夹中。新建时应该将文件后缀设置为.cpp 以下是程序灯源代码:#include#include#include#include#include#include#define LEN_A 20/账户长度#define LEN_P 10/密码长度 typedef struct Account char name20;long int password;InAccount;typedef struct inputAPword InAccount account;int flag;Input
2、APword;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;/用于接收输入的字符串 int j;InputAPword account;lo
3、adimage(&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);/设置
4、字体的颜色 rectangle(50,150,350,340);/画矩形框 rectangle(254,515,302,585);/画一个矩形框 fillrectangle(100,280,173,315);/登录框 fillrectangle(223,280,296,315);/取消框 SetWorkingImage();/恢复当前绘图设备为默认设备 putimage(0,0,&Img1);/显示图片 do name();/显示文字信息 setbkmode(OPAQUE);/设置字体背景为默认 setbkcolor(RGB(255,255,255);cursor();/显示输入框以及闪烁的光
5、标 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,);/将字符遮掩 j-=2;/数组坐标后退两个 if(j=-1)/当回退到头时的处理 input10=0;/对数组进行标记 break;/退出本次输入 contin
6、ue;else if(input1j=13)/按回车键时的处理 input1j=0;/将数组的最后一个数据标记为0 if(j=0)/无任何输入,且按下回车时的处理 outtextxy(161+8*j,193,);/将回车显示的字符遮掩 outtextxy(161+8*(j-1),193,);/将回车显示的字符遮掩 input10=0;/对数组进行进行标记 break;/退出本次输入 setbkmode(OPAQUE);/设置字体背景为默认 setbkcolor(RGB(255,255,255);cursor2();/光标聚到下一个输入框的开始位置 for(j=0;jLEN_P;j+)/密码输入
7、 input2j=getch();/获取从键盘输入的字符 outtextxy(161+8*j,234,*);/以*号显示,起到遮掩密码的作用 if(input2j=8)/按下删除键时的处理 input2j-1=0;/对数组进行处理 outtextxy(161+8*j,234,);/对需要进行删除处理的字符进行遮掩 outtextxy(161+8*(j-1),234,_T();/对需要删除进行处理的字符进行遮掩 j-=2;/对数组进行处理 if(j=-1)/当删除到头时进行的操作 input20=0;/对数组进行标记 break;/退出本次输入 continue;else if(input2j=
8、13)/按下回车时的操作 outtextxy(161+8*j,234,);input2j=0;/将数组的最后一位标记为0 if(j=0)/无任何操作,直接进行回车输入时的操作 outtextxy(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);/当第一个或第二个框有一个未输入时则继续循环
9、输入 switch(MouseEvent(Img2)case 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(登录);outtextxy
10、(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,宽度为 2 line(161,194,162,210);/光标的描绘 Sleep(300);/延时 void curso
11、r2(void)/第二个光标 do Sleep(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=100&=280&=223&=280&=100&=280&=223&=280&=315)/取消按键范围 value=2;break;return value;/返回值 void main()long int a;InputAPword account;account=menu2();a=system(cls);printf(这是测试的密码:%ld,a);printf(%s,getchar();getchar();