C语言实现图形界面登陆窗口.docx

上传人:b****8 文档编号:28207434 上传时间:2023-07-09 格式:DOCX 页数:11 大小:37.13KB
下载 相关 举报
C语言实现图形界面登陆窗口.docx_第1页
第1页 / 共11页
C语言实现图形界面登陆窗口.docx_第2页
第2页 / 共11页
C语言实现图形界面登陆窗口.docx_第3页
第3页 / 共11页
C语言实现图形界面登陆窗口.docx_第4页
第4页 / 共11页
C语言实现图形界面登陆窗口.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言实现图形界面登陆窗口.docx

《C语言实现图形界面登陆窗口.docx》由会员分享,可在线阅读,更多相关《C语言实现图形界面登陆窗口.docx(11页珍藏版)》请在冰豆网上搜索。

C语言实现图形界面登陆窗口.docx

C语言实现图形界面登陆窗口

纯C语言实现图形界面登陆窗口

编程工具是:

请根据个人需要对源代码进行修改使用,图片放在工程文件夹中.新

建时应该将文件后缀设置为.cpp

以下是程序灯源代码:

#include<>

#include<>

#include<>

#include<>

#include<>

#include<>

#defineLEN_A20//账户长度

#defineLEN_P10//密码长度

typedefstructAccount

charname[20];

longintpassword;

}InAccount;

typedefstructinputAPword

InAccountaccount;

intflag;

}InputAPword;

voidinputbox(void);

voidcursor(void);

voidcursor2(void);

voidname(void);

intMouseEvent(IMAGE);

InputAPwordmenu2(void)

{

initgraph(640,480);//初始化图形界面

IMAGEImg1;〃声明一个IMAGED量

IMAGEImg2(640,480);//声明一个IMAG豉量

charinput1[LEN_A];//用于接收输入的字符串charinput2[LEN_P];//用于接收输入的字符串intj;

InputAPwordaccount;

10adimage(&Img1,_T(""));〃加载图片

SetWorkingImage(&Img1);//设置当前绘图设备为Img1

set1inesty1e(PS_SOLID,NULL,2);//设置线的样式

setfont(64,0,"华文隶书");//设置字体的样式和大小

settextc010r(RGB(134,0,255));〃设置字体的颜色

setlinec010r(RGB(16,16,16));〃设置线的颜色

setbkmode(TRANSPARENT);般置字体的背景为透明

0uttextxy(50,50,_T("A用户登录"));//显示汉字

settextc010r(RGB(0,0,0));//设置字体的颜色

rectang1e(50,150,350,340);//画矩形框

rectang1e(254,515,302,585);//画一个矩形框

fi11rectang1e(100,280,173,315);//登录框

fi11rectang1e(223,280,296,315);//取消框

SetW0rkingImage();//恢复当前绘图设备为默认设备

putimage(0,0,&Img1);//显示图片

do{

name();//显示文字信息

setbkmode(OPAQUE);//设置字体背景为默认

setbkc010r(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]='\0';//将数组的最后一个数据标记为'\0'

if(j==0){//无任何输入,且按下回车时的处理

outtextxy(161+8*j,193,"");//将回车显示的字

符遮掩

outtextxy(161+8*(j-1),193,"");//将回车显示

的字符遮掩

input1[0]='\0';//对数组进行进行标记

}

break;//退出本次输入

}

}setbkmode(OPAQUE);//设置字体背景为默认

setbkc010r(RGB(255,255,255));

cursor2();//光标聚到下一个输入框的开始位置

for(j=0;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;//对数组进行处理

if(j<=-1){//当删除到头时进行的操作

input2[0]='\0';//对数组进行标记

break;//退出本次输入

continue;

}elseif(input2[j]==13){//按下回车时的操作

outtextxy(161+8*j,234,"");

input2[j]='\0';//将数组的最后一位标记为‘\0'

if(j==0){//无任何操作,直接进行回车输入时的操作

outtextxy(161+8*j,234,"");//对输入回车时产

生的字符进行遮掩

outtextxy(161+8*(j-1),234,_T(""));//对输入

回车时产生的字符进行遮掩

input2[0]='\0';//对数组进行标记

}

break;//结束本次输入

}

}

getimage(&Img2,0,0,640,480);//保存当前显示的界面

}while((input1[0]=='\0')&&(input2[0]=='\0'));//

当第一个

或第二个框有一个未输入时那么继续循环输入

switch(MouseEvent(Img2)){

case1:

{

=1;

strcpy将输入的字符存入结构体

将输入的密码存入结构体

break;

}

case2:

{

=2;

}

}

returnaccount;

closegraph();

voidname(void)//显示文字信息函数

setfont(25,0,"宋体)〃设置字体的大小和样式

setbkmode(TRANSPARENT);

settextc010r(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);//设置字体背景为默认

voidcursor(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);//延时

voidcursor2(void)〃第二个光标

do{

Sleep(30);//延时

setlinestyle(PS_SOLID,NULL,2);//设置字体样式

line(162,234,163,251);//光标的描绘

Sleep(30);//延时

}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);

字体颜色,红

setlinec010r(RGB(252,15,0));//线的颜色,红

settextc010r(RGB(252,15,0));//

setfont〔25,0,"宋体"〕;//设置字体的大小和样

setbkmode(TRANSPARENT);

fillrectangle(100,280,173,315);//登录框

outtextxy(111,285,_T("登录"));

SetWorkingImage();//恢复当前的绘图设备

putimage(0,0,&Img);//显示当前的图画

}elseif(>=223&&<=296)&&>=280&&<=315)){//对

鼠标的X,Y坐标进行判断

SetWorkingImage(&Img);//设置当前的绘图设

setlinestyle(PS_SOLID,NULL,2);

setlinec010r(RGB(252,15,0));//线的颜色,红

settextc010r(RGB(252,15,0));//字体颜色,红

setfont〔25,0,"宋体"〕;//设置字体的大小和样

setbkmode(TRANSPARENT);

fillrectangle(223,280,296,315);//取消框

outtextxy(234,285,_T("取消"));

SetWorkingImage();//恢复当前的绘图设备

putimage(0,0,&Img);//显示当前的图画

}else{

SetWorkingImage(&Img);//设置当前的绘图设

setlinec010r(RGB(134,0,255));//设置线的颜

settextc010r(RGB(134,0,255));//字体颜色,

黑色

fillrectangle(100,280,173,315);//登录框

fillrectangle(223,280,296,315);//取消框

色,白色

setfont(25,0,"宋体");//设置字体的大小和样

outtextxy(111,285,_T("登录"));

outtextxy(234,285,_T("取消"));

SetWorkingImage();//恢复当前绘图设备为默

认设备

putimage(0,0,&Img);

}

break;

}

case{

if(>=100&&<=173)&&>=280&&<=315)){//登陆按键

范围

value=1;

}elseif(>=223&&<=296)&&>=280&&<=315)){//取

消按键范围

value=2;

break;

returnvalue;//返回值

voidmain()

longinta;

InputAPwordaccount;

account=menu2();

a=system("cls");

printf〔"这是测试的密码:

%ld",a〕;

printf("%s",getchar();

 

getchar();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1