函数功能:

MessageBox 函数用于显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。

消息框中返回一个整数值,该值指示用户单击了哪个按钮。

API 函数原型:

注释:In 说明该参数是输入的,opt 说明该参数是可选参数。

int WINAPI MessageBox(

In_opt HWND hWnd,

In_opt LPCTSTR lpText,

In_opt LPCTSTR lpCaption,

In UINT uType

);

具体说明参考:https://fishc.com.cn/forum.php?mod=viewthread&tid=46730&extra=page%3D1%26filter%3Dtypeid%26typeid%3D420

示例代码:

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
MessageBox(NULL, TEXT("This is My First MessageBox"), TEXT("Message"), MB_OK);
return 0;
}

实现1:一个含有"中止","重试"和"跳过"三个按钮在里面的对话框

我们可以在MessageBox的第四个参数utype中发现 MB_ABORTRETRYIGNORE 有"中止","重试"和"跳过"三个按钮在里面,那么我们也可以实现

对于其中MB_OK | MB_ABORTRETRYIGNORE代码中的|的理解:其实都是进行了宏定义

那么|操作就可以理解为或操作,有一则为一

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
MessageBox(NULL, TEXT("This is My First MessageBox"), TEXT("Message"), MB_OK | MB_ABORTRETRYIGNORE);
return 0;
}

对于代码中TEXT的理解:其实是为了解决编码的问题,如果一些字符是单字节,而有些字符又是双字节,就会导致不统一,我们进入TEXT的定义中发现

再到__TEXT中发现进行L粘连quote,如果是中文字符的话就会进行UNICODE编码处理

关于UNICODE的知识参考:https://fishc.com.cn/forum.php?mod=viewthread&tid=124473&highlight=Unicode%2B%B5%C4%BD%E2%BE%C8%B7%BD%B0%B8


实现2:只有点击是按钮,才能结束MessageBox

我们通过发现返回值为IDYES的时候才会是点击是的按钮,那么我们实现可以通过if来判断

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
int ret;
while (true) {
ret = MessageBox(NULL, TEXT("This is My First MessageBox"), TEXT("Message"), MB_YESNO); //利用变量ret来接收返回值
if (ret == IDYES) {
break;
}
}
return 0;
}

学习:MessageBox API的更多相关文章

  1. [WinAPI] API 2 [MessageBox API][消息框API]

    /* 调用消息框 MessageBox API [peoject->set->link->project chose->subsystem:windows] */ #inclu ...

  2. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  3. 学习FFmpeg API

    ffmpeg是编解码的利器,用了很久,以前看过dranger 的教程,非常精彩,受益颇多,是学习ffmpeg api很好的材料.可惜的是其针对的ffmpeg版本已经比较老了,而ffmpeg的更新又很快 ...

  4. 【转】学习FFmpeg API – 解码视频

    ffmpeg是编解码的利器,用了很久,以前看过dranger 的教程,非常精彩,受益颇多,是学习ffmpeg api很好的材料.可惜的是其针对的ffmpeg版本已经比较老了,而ffmpeg的更新又很快 ...

  5. 学习某些API的方法

    学习某些 API 的方法 这里的 API 可能是某个系统平台,开发包,开发平台,开发工具等等,因为任何系统和技术方法提供给开发者的打包方式都是一系列 API . 无论你有在哪一层级开发,从硬件驱动到系 ...

  6. Vue学习笔记-API调试工具--->国产apipost按装(比postman好按装好用)

    一  使用环境: windows 7 64位操作系统 二   Vue学习笔记-API调试工具--->apipost按装 1.下载: https://www.apipost.cn/ (比postm ...

  7. IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API

    IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...

  8. canvas学习之API整理笔记(一)

    其实canvas本身很简单,就是去学习它的API,多看实例,多自己动手练习,多总结.但是canvas的API实在是有点多,对于初学者来说,可能学到一半就止步不前了.我也有这种感觉,在学习的过程中,编写 ...

  9. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

随机推荐

  1. 003 SpringBoot整合SpringMVC、Mybatis 案例

    1.不使用骨架创建一个maven工程 2.修改POM.xml文件 <?xml version="1.0" encoding="UTF-8"?> &l ...

  2. golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

    micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.s ...

  3. 国际化地区语言码对照表(i18n)

    af 公用荷兰语 af-ZA 公用荷兰语 - 南非 sq 阿尔巴尼亚 sq-AL 阿尔巴尼亚 -阿尔巴尼亚 ar 阿拉伯语 ar-DZ 阿拉伯语 -阿尔及利亚 ar-BH 阿拉伯语 -巴林 ar-EG ...

  4. PHP 使用 pdo 操作oracle数据库 报错

    ## SELECT UNID,NAME,NAME_XML WHERE UNID>=10 AND UNID<=15 ## 在10到15这5条数据中不为空数据php: symbol looku ...

  5. 用es6 封装的对数组便捷操作的算法

    /* * @Description: 对数组的基本操作 * @LastEditors: Please set LastEditors * @Date: 2019-04-26 12:00:19 * @L ...

  6. gin-swagger生成API文档

    github地址:https://github.com/swaggo/gin-swagger 下载安装cmd/swag命令工具包 先下载cmd包,才能执行相关命令 go get -u github.c ...

  7. window 包管理器--Chocolatey

    Chocolatey 介绍 在 Linux 下,大家喜欢用 apt-get 来安装应用程序,如今在 windows 下,大家可以使用 Chocolatey 来快速下载搭建一个开发环境. Chocola ...

  8. npm和Node.js简介

    Node.js Node.js是JavaScript的一种运行环境,是对Google V8引擎进行的封装.是一个服务器端的javascript的解释器.Node.js允许通过JavaScript和一系 ...

  9. 基于Text-CNN模型的中文文本分类实战

    Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...

  10. 将html版API文档转换成chm格式的API文档

    文章完全转载自: https://blog.csdn.net/u012557538/article/details/42089277 将html版API文档转换成chm格式的API文档并不是一件难事, ...