文章目录

  • 第一个参数:
  • 第二个参数:
  • 第三个参数:
  • 第四个参数:
  • 补充
  • 代码实现

MessageBoxA(NULL, text, title, MB_OK)

第一个参数:

HWND hWnd
传入一个句柄,这个窗口句柄代表的窗口就是这个消息窗口的所有者,这个如果为NULL的话,则消息框没有拥有窗口,即归桌面所有。

第二个参数:

LPCSTR lpText可填入 窗口的内容字符串,赋值时在字符前面记得加个L,即按宽字符来编译。举例:LPCWSTR text = L"hello world";

LPCSTR代表char * 类型 ;LPCWSTR代表 WCHAR *类型 (补充一下:WCHAR 代表宽字符,有需要的可以自己去了解一下windows核心编程)
有时候可能会看到LPCTSTR,其实它不是什么类型,它也就是LPCSTRLPCWSTR二者的一个宏定义而已,它可以自动配环境来自动转换。

第三个参数:

```LPCTSTR lpCaption````可填入 窗口的标题字符串
解释同上

第四个参数:

UINT uType

按钮参数 含义
MB_OK 默认值。有一个确认按钮在里面。
MB_YESNO 有是和否在里面。
MB_ABORTRETRYIGNORE 有Abort(放弃),Retry(重试)和Ignore(跳过)
MB_YESNOCANCEL 消息框含有三个按钮:Yes,No和Cancel
MB_RETRYCANCEL 有Retry(重试)和Cancel(取消)
MB_OKCANCEL 消息框含有两个按钮:OK和Cancel

补充

MessageBoxA指的是多字节字符集环境下所使用的函数
MessageBoxW指的是Unicode字符集(宽字符)环境下所使用的函数

至于有时候会出现MessageBox这个,其实它的道理也是同上方一样,它是MessageBoxA
MessageBoxW根据环境来弄的一个宏定义,根据环境来自动选择是MessageBoxA还是MessageBoxW

代码实现

#include<iostream>
#include<Windows.h>
using namespace std;
int main() {LPCWSTR text = L"hello world";LPCWSTR title = L"第一个MessageBoxW";MessageBoxW(NULL, text, title, MB_OK);
}

#include<iostream>
#include<Windows.h>
using namespace std;
int main() {LPCSTR text = "hello world";LPCSTR title = "第一个MessageBoxA";MessageBoxA(NULL, text, title, MB_OK);
}


备注:
2021年坚持学写博客第3天(学习两个windows API) 寻梦SS

明日目标:
windows核心编程API函数

MessageBoxA 和MessageBoxW相关推荐

  1. MessageBoxA、MessageBoxW与MessageBox

    再来看Windows API,实际上Windows也不得不为MessageBox()函数提供恼人的双版本: int MessageBoxA( HWND hWnd, LPCSTR lpText, LPC ...

  2. [转]GetProcAddress函数

    函数功能描述:GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址.(使用动态调用函数地址之后,第三方程序(比如Depend.exe)就不会查出程序使用了哪些库和哪些函数) ...

  3. 某CrackMe算法分析

    平时看了一些CrackMe,算法都比较简单,这次拿到的这个算法自己觉得还是比较有难度,首先自己分析时并没有完全分析出算法的结论,后来参照答案才得到较完整的分析: 1.OD载入,F9运行,输入序列号,点 ...

  4. 在C#中调用windows API函数

    Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用Windows ...

  5. Ansi与Unicode及慎用W2A等

    2019独角兽企业重金招聘Python工程师标准>>> Ansi与Unicode简要说明及各自的优缺点 他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用 ...

  6. 汉字在屏幕上的显示过程以及乱码的原因

    一.计算机中的显示原理 要想在计算机的显示器上显示文字,首先你得写一个程序,这个程序的任务就是就是把文字的显示信息发给显卡,显示信息包括在这个屏幕上的输出位置.字的大小等等.然后显卡就知道怎么显示这个 ...

  7. C++ WINDOWS API 第2章 Windows API概要

    目录 2.1       Windows数据类型.. 1 2.1.1       Windows数据类型示例.. 1 2.1.2       Windows 数据类型与标准C 数据类型的关系.. 5 ...

  8. 方式四:修改模块导入段来拦截API

    一个模块的导入段包含一组DLL,导入段还包含一个符号表,其中列出了该模块从各DLL中导入的符号, 当该模块调用一个导入函数的时候,线程实际上会先从模块的导入表中得到相应的导入函数的地址,然后再跳转到那 ...

  9. C# Hook原理及EasyHook简易教程

    前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的, ...

最新文章

  1. matlab 计算运行时间的办法
  2. java.lang.NoClassDefFoundError
  3. html双击变成可编辑,jquery 实现双击编辑并保存
  4. 进一步了解 apt-get 的几个命令
  5. 吃奶酪(洛谷-P1433)
  6. 华米科技将推出首款真无线耳机 支持降噪还能检测心率?
  7. 加密芯片——RSA算法特点与应用注意事项
  8. 生产者消费者之爸爸妈妈儿子女儿苹果橘子编程实现
  9. springboot - 应用实践(3)springboot的核心
  10. BZOJ2190 [SDOI2008]仪仗队
  11. Local Binary Patterns LBP算法
  12. 计算机联锁工程设计论文PPT,车站计算机联锁工程设计(哈尔滨)
  13. 【java模板引擎】-beetl
  14. 网易有道java面试题,网易有道研发类笔试题
  15. MusicStore-1 Code First 通过非迁移实现建立数据库
  16. 对模型进行DP处理(DP-SGD+DP-Logits)
  17. 【ECS】云服务器ECS是什么
  18. 怎么读书才是善读书?
  19. docker内存满了
  20. 深度学习——BRNN和DRNN

热门文章

  1. 成功解决ValueError: too many values to unpack (expected 2)
  2. DataScience:对严重不均衡数据集进行多种采样策略(随机过抽样、SMOTE过采样、SMOTETomek综合采样、改变样本权重等)简介、经验总结之详细攻略
  3. ML之xgboost:利用xgboost算法(自带,特征重要性可视化+且作为阈值训练模型)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
  4. AI公开课:19.02.20 雷鸣教授《人工智能革命与机遇》课堂笔记以及个人感悟
  5. CV之IG:基于CNN网络架构+ResNet网络进行DIY图像生成网络
  6. ML之LoR:kaggle比赛之利用泰坦尼克号数据集建立LoR模型对每个人进行获救是否预测
  7. I-string_2019牛客暑期多校训练营(第四场)
  8. MyBatis学习笔记(六)动态sql
  9. ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)
  10. EXT4.2--Ext Designer 使用