专栏文章
弹窗模拟器
休闲·娱乐参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min9o1ff
- 此快照首次捕获于
- 2025/12/01 22:50 3 个月前
- 此快照最后确认于
- 2025/12/01 22:50 3 个月前
- 开源类型:MIT (可以二次开发,但需要保留原作者声明)
//弹窗模拟器 v3.1.3
#define maxneirong 10000000
#define maxbiaoti 10000000
#include<bits/stdc++.h>
#define banben "v3.1.3"
#include<windows.h>
#include<conio.h>
using namespace std;
int anniu1,anniu2,anniushuliang,tubiao,morenanniu,moshi,duiqi,youwangzuo;
char neirong[maxneirong],biaoti[maxbiaoti];
char x;
void MINIMIZEWindow(int x);
void home();
void game();
void copy();
void help();
void day();
int main()
{
system("title 弹窗模拟器 "banben);
printf("正在加载中,请耐心等待...");
MINIMIZEWindow(0);
MessageBox(NULL,"欢迎来到 弹窗模拟器 "banben,"程序员",4160);
MINIMIZEWindow(1);
while(1)
{
home();
if(x=='1')
game();
else if(x=='2')
copy();
else if(x=='3')
help();
else if(x=='4')
day();
}
}
void MINIMIZEWindow(int x)
{
HWND hwnd=GetConsoleWindow();
if(x==0)
ShowWindow(hwnd, SW_MINIMIZE);
if(x==1)
ShowWindow(hwnd, SW_RESTORE);
return;
}
void game()
{
system("cls");
printf("不准瞎输入!\n");
Sleep(2000);
anniu1goto:;
system("cls");
printf("\
请输入消息框的按钮样式:\n\
0.确定\n\
1.确定、取消\n\
2.中止、重试、忽略(关闭键失效)\n\
3.是、否、取消\n\
4.是、否(关闭键失效)\n\
5.重试、取消\n\
6.取消、重试、继续\n\
");
scanf("%d",&anniu1);
getchar();
system("cls");
if(!(anniu1==0||anniu1==1||anniu1==2||anniu1==3||anniu1==4||anniu1==5||anniu1==6))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto anniu1goto;
}
if(anniu1==0)
anniushuliang=1;
else if(anniu1==1||anniu1==4||anniu1==5)
anniushuliang=2;
else if(anniu1==2||anniu1==3||anniu1==6)
anniushuliang=3;
anniu2goto:;
printf("\
是否添加“帮助”按钮:\n\
0.不添加\n\
16384.添加\n\
");
scanf("%d",&anniu2);
getchar();
system("cls");
if(!(anniu2==0||anniu2==16384))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto anniu2goto;
}
if(anniu2==16384)
anniushuliang++;
tubiaogoto:;
system("cls");
printf("\
请输入消息框的图标样式:\n\
0.无\n\
16.红叉\n\
32.问号\n\
48.警告\n\
64.提示\n\
");
scanf("%d",&tubiao);
getchar();
system("cls");
if(!(tubiao==0||tubiao==16||tubiao==32||tubiao==48||tubiao==64))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto tubiaogoto;
}
morenanniugoto:;
system("cls");
if(anniushuliang==1)
{
printf("\
请输入消息框的默认按钮:\n\
0.第一个按钮\n\
");
scanf("%d",&morenanniu);
getchar();
system("cls");
if(!(morenanniu==0))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto morenanniugoto;
}
}
if(anniushuliang==2)
{
printf("\
请输入消息框的默认按钮:\n\
0.第一个按钮\n\
256.第二个按钮\n\
");
scanf("%d",&morenanniu);
getchar();
system("cls");
if(!(morenanniu==0||morenanniu==256))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto morenanniugoto;
}
}
if(anniushuliang==3)
{
printf("\
请输入消息框的默认按钮:\n\
0.第一个按钮\n\
256.第二个按钮\n\
512.第三个按钮\n\
");
scanf("%d",&morenanniu);
getchar();
system("cls");
if(!(morenanniu==0||morenanniu==256||morenanniu==512))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto morenanniugoto;
}
}
if(anniushuliang==4)
{
printf("\
请输入消息框的默认按钮:\n\
0.第一个按钮\n\
256.第二个按钮\n\
512.第三个按钮\n\
768.第四个按钮\n\
");
scanf("%d",&morenanniu);
getchar();
system("cls");
if(!(morenanniu==0||morenanniu==256||morenanniu==512||morenanniu==768))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto morenanniugoto;
}
}
moshigoto:;
system("cls");
printf("\
请输入消息框模式:\n\
0.应用程序模式;用户在继续在当前应用程序中工作前必须响应消息框。\n\
4096.系统模式;在用户响应消息框前,所有应用程序都挂起。\n\
65536.将消息框窗口指定为前景窗口。\n\
");
scanf("%d",&moshi);
getchar();
system("cls");
if(!(moshi==0||moshi==4096||moshi==65536))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto moshigoto;
}
duiqigoto:;
system("cls");
printf("\
是否文本右对齐:\n\
0.文本左对齐。\n\
524288.文本右对齐。\n\
");
scanf("%d",&duiqi);
getchar();
system("cls");
if(!(duiqi==0||duiqi==524288))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto duiqigoto;
}
youwangzuogoto:;
system("cls");
printf("\
是否让窗口从右到左显示:\n\
0.窗口从左到右显示。\n\
1048576.窗口从右到左显示。\n\
");
scanf("%d",&youwangzuo);
getchar();
system("cls");
if(!(youwangzuo==0||youwangzuo==1048576))
{
MessageBox(NULL,"输入数据错误,请重新输入!","程序员",4112);
printf("输入数据错误,请重新输入!\n");
Sleep(2000);
system("cls");
goto youwangzuogoto;
}
system("cls");
printf("请输入消息框的标题((Enter)为结束):\n");
for(int i=0;i<maxbiaoti;i++)
{
scanf("%c",&x);
if(x=='\n')
{
biaoti[i]='\0';
break;
}
biaoti[i]=x;
}
system("cls");
printf("请输入消息框的内容((Enter),(Ctrl+Z),(Enter)为结束(依次按下)):\n");
for(int i=0;i<=maxneirong;i++)
{
char l=x;
if(scanf("%c",&x)==EOF)
{
neirong[i-1]='\0';
break;
}
if(i-1>=0)
neirong[i-1]=l;
}
system("cls");
MINIMIZEWindow(0);
MessageBox(NULL,neirong,biaoti,anniu1|anniu2|tubiao|morenanniu|moshi|duiqi|youwangzuo);
MINIMIZEWindow(1);
system("cls");
return;
}
void copy()
{
system("cls");
printf("欢迎进入程序模式!\n");
Sleep(2000);
system("cls");
printf("\
请输入消息框的按钮样式:\n\
0.确定\n\
1.确定、取消\n\
2.中止、重试、忽略(关闭键失效)\n\
3.是、否、取消\n\
4.是、否(关闭键失效)\n\
5.重试、取消\n\
6.取消、重试、继续\n\
");
scanf("%d",&anniu1);
getchar();
system("cls");
printf("\
是否添加“帮助”按钮:\n\
0.不添加\n\
16384.添加\n\
");
scanf("%d",&anniu2);
getchar();
system("cls");
printf("\
请输入消息框的图标样式:\n\
0.无\n\
16.红叉\n\
32.问号\n\
48.警告\n\
64.提示\n\
");
scanf("%d",&tubiao);
getchar();
system("cls");
printf("\
请输入消息框的默认按钮:\n\
0.第一个按钮\n\
256.第二个按钮\n\
512.第三个按钮\n\
768.第四个按钮\n\
");
scanf("%d",&morenanniu);
getchar();
system("cls");
printf("\
请输入消息框模式:\n\
0.应用程序模式;用户在继续在当前应用程序中工作前必须响应消息框。\n\
4096.系统模式;在用户响应消息框前,所有应用程序都挂起。\n\
65536.将消息框窗口指定为前景窗口。\n\
");
scanf("%d",&moshi);
getchar();
system("cls");
printf("\
是否文本右对齐:\n\
0.文本左对齐。\n\
524288.文本右对齐。\n\
");
scanf("%d",&duiqi);
getchar();
system("cls");
printf("\
是否让窗口从右到左显示:\n\
0.窗口从左到右显示。\n\
1048576.窗口从右到左显示。\n\
");
scanf("%d",&youwangzuo);
getchar();
system("cls");
printf("请输入消息框的标题((Enter)为结束):\n");
for(int i=0;i<maxbiaoti;i++)
{
scanf("%c",&x);
if(x=='\n')
{
biaoti[i]='\0';
break;
}
biaoti[i]=x;
}
system("cls");
printf("请输入消息框的内容((Enter),(Ctrl+Z),(Enter)为结束(依次按下)):\n");
for(int i=0;i<=maxneirong;i++)
{
char l=x;
if(scanf("%c",&x)==EOF)
{
neirong[i-1]='\0';
break;
}
if(i-1>=0)
neirong[i-1]=l;
}
system("cls");
MINIMIZEWindow(0);
bool wfcj= MessageBox(NULL,neirong,biaoti,anniu1|anniu2|tubiao|morenanniu|moshi|duiqi|youwangzuo);
if(!wfcj)
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
printf("警告:此代码无法创建弹窗!\n");
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
MINIMIZEWindow(1);
printf("代码:\n MessageBox(NULL,\"");
for(int i=0;i<strlen(neirong);i++)
{
if(neirong[i]=='\n')
printf("\\n");
else if(neirong[i]=='\t')
printf("\\t");
else
printf("%c",neirong[i]);
}
printf("\",\"");
for(int i=0;i<strlen(biaoti);i++)
{
if(biaoti[i]=='\n')
printf("\\n");
else if(biaoti[i]=='\t')
printf("\\t");
else
printf("%c",biaoti[i]);
}
printf("\
\",%d);\n\
\n\
\n\
",anniu1|anniu2|tubiao|morenanniu|moshi|duiqi|youwangzuo);
printf("\
本次弹窗有以下几种返回值:\n\
\n\
");
if(wfcj)
{
if(anniu1==0||anniu1==1)
printf("“确定”键——返回值为1\n\n");
if(anniu1==1||anniu1==3||anniu1==5||anniu1==6)
printf("“取消”键——返回值为2\n\n");
if(anniu1==2)
printf("“终止”键——返回值为3\n\n");
if(anniu1==2||anniu1==5||anniu1==6)
printf("“重试”键——返回值为4\n\n");
if(anniu1==2)
printf("“忽略”键——返回值为5\n\n");
if(anniu1==3||anniu1==4)
printf("“是”键——返回值为6\n\n");
if(anniu1==3||anniu1==4)
printf("“否”键——返回值为7\n\n");
if(anniu1==0||anniu1==1||anniu1==3||anniu1==5||anniu1==6)
printf("“×”键——返回值为8\n\n");
if(anniu1==6)
printf("“继续”键——返回值为11\n\n");
}
else
printf("返回值为0\n\n");
printf("\
\n\
按任意键返回主界面\n\
\n\
\n\
");
getch();
system("cls");
return;
}
void help()
{
system("cls");
printf("\
标题可以带字母、数字、空格(' ')和特殊符号(不包括(Ctrl+Z)和(Enter))\n\
内容可以带字母、数字、空格(' ')和特殊符号(不包括(Ctrl+Z))\n\
\n\
特别强调!!!\n\
如果程序出错请按(Ctrl+C)或(Alt+F4)强制终止程序!!!\n\
如果电脑出事,后果自负!!!\n\
\n\
\n\
按任意键返回主界面\n\
\n\
\n\
");
getch();
system("cls");
return;
}
void day()
{
system("cls");
printf("\
sun_and_moon制作\n\
\n\
\n\
2025.03.04 v.1.0.0 完成基本的创建指定消息框\n\
\n\
2025.03.31 v.2.0.0 完成一次大更新\n\
\n\
2025.04.02 v.2.1.0 新增程序员模式\n\
\n\
2025.04.06 v.2.2.0 更新代码,修复已知BUG\n\
\n\
2025.04.07 v.3.0.0 新增消息框样式选项,重构代码\n\
\n\
2025.04.11 v.3.1.0 完成一次小更新,修复已知BUG\n\
\n\
2025.04.12 v.3.1.1 修复已知BUG\n\
\n\
2025.11.05 v.3.1.2 新增弹窗返回值提示\n\
\n\
2025.11.12 v.3.1.3 修复已知问题\n\
\n\
\n\
按任意键返回主界面\n\
\n\
\n\
");
getch();
system("cls");
return;
}
void home()
{
system("cls");
printf("\
欢迎来到 弹窗模拟器 "banben"\n\
\n\
\n\
1.开始模拟 2.程序模式\n\
3.操作须知 4.更新日志\n\
\n\
");
x=getch();
system("cls");
return;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...