使用Exsyx图形库制作登录界面可却输入与别的不能一起运行
#include <stdio.h>
#include <graphics.h>
#include <mmsystem.h>
#include <conio.h>
#include <windows.h>
#include "zym.h"
#include <easyx.h>
#pragma warning(disable : 4996)
ExMessage chh;
//TCHAR ch;
int hg = 164;
int gg = 100;
int ggk = 378;
char nmd;
char* zi = (char*)malloc(sizeof(char) * 100);
char zh[] = { 2,0,5,2,1,2,6,6,7,9 };
char mm[] = { 1,2,3,4,5,6,7,8,9 };
zb gbb(IMAGE a, zb* k);
MOUSEMSG sb;
ExMessage kkp;
IMAGE yi;
IMAGE xx1;
IMAGE xx2;
IMAGE nn;
IMAGE gb;
zb en;
zb r;
int nb = 0;
zb ma;
zb mk;
void pu(void) {
PeekMouseMsg(&sb, true);
if ((sb.x >= 374 && sb.x <= 657) && (sb.y >= 158 && sb.y <= 186) && sb.mkLButton) {
nb = 1;
}
else if ((sb.x >= 374 && sb.x <= 657) && (sb.y >= 205 && sb.y <= 233) && sb.mkLButton) {
nb = 2;
}
}
zb* mam(void) {
ma.x = 378;
ma.y = 164;
return &ma;
}
zb* mkk(void) {
mk.x = 378;
mk.y = 210;
return &mk;
}
void pd() {
if(nb==1){
gbb(gb, (mam()));
pu();
}
else if (nb == 2) {
gbb(gb, (mkk()));
pu();}
}
void zf() {
pd();
pu();
}
void ks(void) {
loadimage(&yi, L"D:/Users/86131/source/repos/QQ/素材一/ka.jpeg");
loadimage(&xx1, L"D:/Users/86131/source/repos/QQ/素材一/aaa.png");
loadimage(&xx2, L"D:/Users/86131/source/repos/QQ/素材一/aaaa.png");
loadimage(&nn, L"D:/Users/86131/source/repos/QQ/素材一/kkkk.png");
loadimage(&gb, L"D:/Users/86131/source/repos/QQ/素材一/gb.png");
en.x = 450;
en.y = 0;
r.x = 0;
r.y = 0;
putimage(0, 0, &yi);
putimage(en.x, en.y, &xx2, SRCAND);
putimage(en.x, en.y, &xx1, SRCPAINT);
putimage(300,130 , &nn);
PeekMouseMsg(&sb, true);
pu();
}
zb gbb(IMAGE a,zb*k) {
Sleep(100);
putimage(k->x, k->y, &a);
PeekMouseMsg(&sb, true);
pu();
return k;
}
//void shuru1(int x6, int xfw, int yfw, char q)
//{
// int j, m;
// m = j = 0;
// if (nb == 1) {
// while ((*q = getch()) != 13)
// {
// /pu();
// ks();
// pu();
// pd();
// zf();/
//
// if (*q == VK_BACK && x6 != xfw)
// {
// *q = ' ';
//
//
// outtextxy(x6, yfw, *q);
// x6 -= 9;
// --q;
//
//
// }
// else if (q == VK_BACK)
// continue;
// else
// {
// //outtextxy(x6+=9,yfw,"");
// outtextxy(x6 += 9, yfw, *q);
// ++q;
// ++j;
// }
// }
// *q = '\0';
// nb=0;
// }
// if (nb == 2) {
// while ((*q = getch()) != 13)
// {
// /pu();
// ks();
// pu();
// pd();
// zf();/
//
// if (*q == VK_BACK && x6 != xfw)
// {
// *q = ' ';
//
//
// outtextxy(x6, yfw, *q);
// x6 -= 9;
// --q;
//
//
// }
// else if (q == VK_BACK)
// continue;
// else
// {
// //outtextxy(x6+=9,yfw,"");
// outtextxy(x6 += 9, yfw, *q);
// ++q;
// ++j;
// }
// }
// *q = '\0';
// }
//
// nb = 0;
//}
char jjl;
int main(void)
{
initgraph(1024, 460, EW_SHOWCONSOLE);
while (1) {
//peekmessage(&chh, EM_CHAR, true);
//printf("%c", chh.ch);
//chh.ch = 0;
pu();
ks();
pu();
pd();
zf();
//shuru1(ggk, gg, hg, &nmd);
int jk = 0;
if(nb == 2) {
while (nb==2/*!(peekmessage(&kkp, EM_MOUSE, true))*/) {
//Sleep(1);
//Sleep(1);
pu();
if (peekmessage(&kkp, EM_CHAR,true))
{
//getmessage(&chh, EM_CHAR);
jjl = chh.ch;
printf("%c", kkp.ch);
/* if ((peekmessage(&kkp, EM_MOUSE, NULL))) {
break;
!(peekmessage(&kkp, EM_MOUSE, true))
}*/
/*if (peekmessage(&kkp, EM_MOUSE, true)) {
break;
}*/
pu();
//pd();
if (nb != 2) {
break;
}
pu();
if (nb != 2) {
break;
}
}
// pu();
//if (nb != 2) {
// break;
// } /*if (peekmessage(&kkp, EM_MOUSE, true)) {
/*break;
//}*/
}
//nb = 0;
/* *(zi + jk) = chh.ch;
jk++;*/
}
//else pu();
//pd();
//if (nb == 2) {
// *(zi + jk) = 0;
// printf("%s", *zi);
// getmessage(&chh, EM_CHAR);
// pu();
// /printf("%c", chh.ch);/
// //chh.ch = 0;
//}
}
return 0;
}
并没有报错,可输入数字退出输入不能一起
而且不知道输出
我的解答思路和尝试过的方法
改循环,设置时间函数,快自闭了
我想要达到的结果
可以实现在输入中,程序还可以运行刷新界面,而且鼠标移动到别的按钮并点击可以瞬间停止输入