MessageBoxA 和MessageBoxW
文章目录
- 第一个参数:
- 第二个参数:
- 第三个参数:
- 第四个参数:
- 补充
- 代码实现
MessageBoxA(NULL, text, title, MB_OK)
第一个参数:
HWND hWnd
传入一个句柄,这个窗口句柄代表的窗口就是这个消息窗口的所有者,这个如果为NULL
的话,则消息框没有拥有窗口,即归桌面所有。
第二个参数:
LPCSTR lpText
可填入 窗口的内容字符串,赋值时在字符前面记得加个L
,即按宽字符来编译。举例:LPCWSTR text = L"hello world";
LPCSTR
代表char * 类型 ;LPCWSTR
代表 WCHAR *
类型 (补充一下:WCHAR
代表宽字符,有需要的可以自己去了解一下windows核心编程)
有时候可能会看到LPCTSTR
,其实它不是什么类型,它也就是LPCSTR
,LPCWSTR
二者的一个宏定义而已,它可以自动配环境来自动转换。
第三个参数:
```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相关推荐
- MessageBoxA、MessageBoxW与MessageBox
再来看Windows API,实际上Windows也不得不为MessageBox()函数提供恼人的双版本: int MessageBoxA( HWND hWnd, LPCSTR lpText, LPC ...
- [转]GetProcAddress函数
函数功能描述:GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址.(使用动态调用函数地址之后,第三方程序(比如Depend.exe)就不会查出程序使用了哪些库和哪些函数) ...
- 某CrackMe算法分析
平时看了一些CrackMe,算法都比较简单,这次拿到的这个算法自己觉得还是比较有难度,首先自己分析时并没有完全分析出算法的结论,后来参照答案才得到较完整的分析: 1.OD载入,F9运行,输入序列号,点 ...
- 在C#中调用windows API函数
Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用Windows ...
- Ansi与Unicode及慎用W2A等
2019独角兽企业重金招聘Python工程师标准>>> Ansi与Unicode简要说明及各自的优缺点 他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用 ...
- 汉字在屏幕上的显示过程以及乱码的原因
一.计算机中的显示原理 要想在计算机的显示器上显示文字,首先你得写一个程序,这个程序的任务就是就是把文字的显示信息发给显卡,显示信息包括在这个屏幕上的输出位置.字的大小等等.然后显卡就知道怎么显示这个 ...
- C++ WINDOWS API 第2章 Windows API概要
目录 2.1 Windows数据类型.. 1 2.1.1 Windows数据类型示例.. 1 2.1.2 Windows 数据类型与标准C 数据类型的关系.. 5 ...
- 方式四:修改模块导入段来拦截API
一个模块的导入段包含一组DLL,导入段还包含一个符号表,其中列出了该模块从各DLL中导入的符号, 当该模块调用一个导入函数的时候,线程实际上会先从模块的导入表中得到相应的导入函数的地址,然后再跳转到那 ...
- C# Hook原理及EasyHook简易教程
前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的, ...
最新文章
- matlab 计算运行时间的办法
- java.lang.NoClassDefFoundError
- html双击变成可编辑,jquery 实现双击编辑并保存
- 进一步了解 apt-get 的几个命令
- 吃奶酪(洛谷-P1433)
- 华米科技将推出首款真无线耳机 支持降噪还能检测心率?
- 加密芯片——RSA算法特点与应用注意事项
- 生产者消费者之爸爸妈妈儿子女儿苹果橘子编程实现
- springboot - 应用实践(3)springboot的核心
- BZOJ2190 [SDOI2008]仪仗队
- Local Binary Patterns LBP算法
- 计算机联锁工程设计论文PPT,车站计算机联锁工程设计(哈尔滨)
- 【java模板引擎】-beetl
- 网易有道java面试题,网易有道研发类笔试题
- MusicStore-1 Code First 通过非迁移实现建立数据库
- 对模型进行DP处理(DP-SGD+DP-Logits)
- 【ECS】云服务器ECS是什么
- 怎么读书才是善读书?
- docker内存满了
- 深度学习——BRNN和DRNN
热门文章
- 成功解决ValueError: too many values to unpack (expected 2)
- DataScience:对严重不均衡数据集进行多种采样策略(随机过抽样、SMOTE过采样、SMOTETomek综合采样、改变样本权重等)简介、经验总结之详细攻略
- ML之xgboost:利用xgboost算法(自带,特征重要性可视化+且作为阈值训练模型)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
- AI公开课:19.02.20 雷鸣教授《人工智能革命与机遇》课堂笔记以及个人感悟
- CV之IG:基于CNN网络架构+ResNet网络进行DIY图像生成网络
- ML之LoR:kaggle比赛之利用泰坦尼克号数据集建立LoR模型对每个人进行获救是否预测
- I-string_2019牛客暑期多校训练营(第四场)
- MyBatis学习笔记(六)动态sql
- ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)
- EXT4.2--Ext Designer 使用