弹窗模拟器

· · 休闲·娱乐

\color{red}注意:
//弹窗模拟器 v3.1.4
#define maxneirong 10000000
#define maxbiaoti 10000000
#include<bits/stdc++.h>
#define banben "v3.1.4"
#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();
void exit();
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();
        else if(x=='5') 
        {
            ShowWindow(GetConsoleWindow(), SW_HIDE);
            MessageBox(NULL,"弹窗模拟器 "banben" 非常感谢您的使用,希望它能在您以后的生活中帮到你\n\n                                      ヾ( ̄▽ ̄)Bye~Bye~","程序员",4160);
            return 0;
        }
    }
}
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\
2026.02.27  v.3.1.4  新增退出选项\n\
\n\
\n\
按任意键返回主界面\n\
\n\
\n\
");
    getch();
    system("cls");
    return;
}
void home()
{
    system("cls");
    printf("\
欢迎来到 弹窗模拟器 "banben"\n\
\n\
\n\
1.开始模拟     2.程序模式     3.操作须知\n\
4.更新日志     5.退出程序\n\
\n\
");
    x=getch();
    system("cls");
    return;
}