信息框即:
MessageBox(NULL, TEXT("Hello World!"), TEXT("Caption"), MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON2);
我们可以看到信息框提供了两个函数,实际上是两种编码的函数
一种是ASCII编码格式(A),一种是Unicode(W)
由于条件编译宏,所以他会自动判断是什么编码
MessageBox函数参数解释:
第1个参数hWnd指定消息框的所有者的窗口句柄,HWND是Handle Window的缩写,即窗口句柄。在Win32中句柄实际上就是一个32位的数值。句柄的实际取值对于程序来说并不重要,Windows通过句柄来标识它所代表的对象,比如读者单击某个按钮,Windows通过该按钮的窗口句柄来判断读者单击了哪一个按钮。
在Windows 中,句柄的使用非常频繁,以后还将遇到HIC0N(图标句柄)、HCURSOR(光标句柄)以及HBRUSH(画刷句柄)等
在这里我们默认填写NULL
第2个参数lpText指定要显示的消息内容,LPCTSTR是一种Windows数据类型,在winnt.h头文件中定义如下
CONST表示常量字符串,不可修改,就是说LPCTSTR是一个指向wchar_t或char类型常字符串的指针。 后面将介绍wchar_t数据类型
第3个参数lpCaption指定消息框的标题。
第4个参数uType指定消息框的图标样式和按钮样式。要指定在消息框中显示的按钮
我们甚至可以添加图标:
还可以指定消息框的默认按钮。默认按钮在显示消息框时突出显示的按钮,它有一个粗的边框,按下Enter键就相当于单击了这个按钮。
MessageBox函数执行成功会返回一个整数值,指明用户单击了哪个按钮
#include <Windows.h>
int WINAPI WinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nShowCmd)
{
int nRet;
nRet = MessageBox(NULL, TEXT("Hello World!"), TEXT("Caption"), MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON2);
if (nRet == IDOK)//判断用户是否点击了确定按钮
{
MessageBox(NULL, L"点击了确定按钮", L"cap", MB_OK);
}
return 0;
}
拓展:
TEXT宏:
TEXT宏是windows程序设计中经常遇到的宏,
如果使用UNICODE字符集,则TEXT(“....”) ,相当于 L"....." ; 如果使用普通的 ascii 字符集,则 TEXT(".....") 就是 普通的 "....." 字符串 ,这样程序移植性强
L:说明该字符串是Unicode字符集
关于字符集的全局设置:
可以设置多字节,设置后就不用加L