文章目录
- 第一个参数:
- 第二个参数:
- 第三个参数:
- 第四个参数:
- 补充
- 代码实现
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函数















