




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上纯C语言实现图形界面登陆窗口一下是界面图:编程工具是:VC6.0请根据个人需要对源代码进行修改使用,图片放在工程文件夹中。新建时应该将文件后缀设置为.cpp以下是程序灯源代码:#include<graphics.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<String.h>#include<windows.h>#define LEN_A 20/账户长度#define LEN_P 10/密码长度typedef stru
2、ct Accountchar name20;long int password;InAccount;typedef struct inputAPwordInAccount 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,48
3、0);/声明一个IMAGE变量char input1LEN_A;/用于接收输入的字符串char input2LEN_P;/用于接收输入的字符串int j;InputAPword account;loadimage(&Img1,_T("girl4.bmp");/加载图片SetWorkingImage(&Img1);/设置当前绘图设备为Img1setlinestyle(PS_SOLID, NULL, 2);/设置线的样式setfont(64,0,"华文隶书");/设置字体的样式和大小settextcolor(RGB(134,0,255);/设
4、置字体的颜色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
5、();/恢复当前绘图设备为默认设备putimage(0,0,&Img1);/显示图片doname();/显示文字信息setbkmode(OPAQUE);/设置字体背景为默认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;/字符数组内容删除一位outtextx
6、y(161+8*j,193," ");/将字符遮掩outtextxy(161+8*(j-1),193," ");/将字符遮掩j -=2;/数组坐标后退两个if(j<=-1)/当回退到头时的处理input10='0'/对数组进行标记break;/退出本次输入continue;else if(input1j=13)/按回车键时的处理input1j='0'/将数组的最后一个数据标记为'0'if(j=0)/无任何输入,且按下回车时的处理outtextxy(161+8*j,193," ");
7、/将回车显示的字符遮掩outtextxy(161+8*(j-1),193," ");/将回车显示的字符遮掩input10='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(inp
8、ut2j=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=13)/按下回车时的操作outtextxy(161+8*j,234," "
9、;);input2j='0'/将数组的最后一位标记为0if(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
10、='0');/当第一个或第二个框有一个未输入时则继续循环输入switch(MouseEvent(Img2)case 1:account.flag=1;strcpy(,input1);/将输入的字符存入结构体account.account.password=atol(input2);/将输入的密码存入结构体break;case 2:account.flag=2;return account;closegraph();void name(void)/显示文字信息函数setfont(25,0,"宋体");/设置字体的大小和样
11、式setbkmode(TRANSPARENT);settextcolor(RGB(0,0,0);outtextxy(90,190,_T("账号");/显示汉字outtextxy(90,233,_T("密码");outtextxy(111,285,_T("登录");outtextxy(234,285,_T("取消");setfont(18,0,"宋体");/setbkmode(OPAQUE);/设置字体背景为默认void cursor(void)/闪烁光标的作用while(1)/如果键盘没有进行输
12、入这循环闪烁inputbox();if(kbhit()/当键盘有反应时kbhit()会返回一个非零值break;/退出闪烁Sleep(300);/延时setlinestyle(PS_SOLID,NULL,2);/设置线的样式为PS_SOLID,宽度为2line(161,194,162,210);/光标的描绘Sleep(300);/延时void cursor2(void)/第二个光标doSleep(30);/延时setlinestyle(PS_SOLID,NULL,2);/设置字体样式line(162,234,163,251);/光标的描绘Sleep(30);/延时while(!kbhit();
13、/当键盘有反应时kbhit()会返回一个非零值void inputbox(void)/描绘两个输入框int i;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);int MouseEvent(IMAGE Img)/鼠标判断MOUSEMSG m;/声明一个鼠标变量int value=0;/返回值while(!value)m=GetMouseMsg();/获取鼠标的信息switch(m.uMsg)case WM_MOU
14、SEMOVE:/当鼠标又移动时的信息处理if(m.x>=100&&m.x<=173)&&(m.y>=280&&m.y<=315)/对鼠标的X,Y坐标进行判断SetWorkingImage(&Img);/设置当前的绘图设备setlinestyle(PS_SOLID,NULL,2);setlinecolor(RGB(252,15,0);/线的颜色,红色settextcolor(RGB(252,15,0);/字体颜色,红色setfont(25,0,"宋体");/设置字体的大小和样式setbkmode(
15、TRANSPARENT);fillrectangle(100,280,173,315);/登录框outtextxy(111,285,_T("登录");SetWorkingImage();/恢复当前的绘图设备putimage(0,0,&Img);/显示当前的图画else if(m.x>=223&&m.x<=296)&&(m.y>=280&&m.y<=315)/对鼠标的X,Y坐标进行判断SetWorkingImage(&Img);/设置当前的绘图设备setlinestyle(PS_SOLID
16、,NULL,2);setlinecolor(RGB(252,15,0);/线的颜色,红色settextcolor(RGB(252,15,0);/字体颜色,红色setfont(25,0,"宋体");/设置字体的大小和样式setbkmode(TRANSPARENT);fillrectangle(223,280,296,315);/取消框outtextxy(234,285,_T("取消");SetWorkingImage();/恢复当前的绘图设备putimage(0,0,&Img);/显示当前的图画elseSetWorkingImage(&Im
17、g);/设置当前的绘图设备setlinecolor(RGB(134,0,255);/设置线的颜色settextcolor(RGB(134,0,255);/字体颜色,黑色fillrectangle(100,280,173,315);/登录框fillrectangle(223,280,296,315);/取消框setbkcolor(RGB(255,255,255);/字体背景色,白色setfont(25,0,"宋体");/设置字体的大小和样式outtextxy(111,285,_T("登录");outtextxy(234,285,_T("取消");SetWorkingImage();/恢复当前绘图设备为默认设备putimage(0,0,&Img);break;case WM_LBUTTONDBLCLK:/鼠标双击左键时的信息if(m.x>=100&&m.x<=173)&&(m.y>=280&&m.y<=315)/登陆按键范围value=1;else if(m.x>=223&&m.x<=296)&&(m.y>=28
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年铁道工程与管理专业资格考试试题及答案
- 2025年物流管理资格考试试题及解析
- 老龄化相关面试题及答案
- 托业模拟测试题及答案
- 2025年高中生化学期末考试试题及答案
- 35年java面试题及答案
- 雪球java面试题及答案
- 经济学微观经济学知识要点与试题
- 网络工程师职业素养在工作中的体现试题及答案
- 网络风险评估的步骤与工具试题及答案
- 重度哮喘诊断与处理中国专家共识(2024)解读
- 2024年山东省高考政治+历史+地理试卷(真题+答案)
- 透析患者控水宣教课件
- 2024年6月浙江高考历史试卷(含答案)
- 镇卫生院第四期健康教育讲座(消除艾滋病、梅毒、乙肝母婴传播及防治)
- JJG 746-2024超声探伤仪
- 2024年湖南省中考数学试卷附答案
- 甘肃省酒泉市(2024年)小学语文部编版小升初真题(疯狂进步)完整试卷(含答案)
- 高校奶茶市场调研报告
- 2023年湖南省生物初中会考试卷
- 物业外包服务质量评价体系构建
评论
0/150
提交评论