弹出一个简单的对话框显示信息
2010-12-18 ~ 2021-4-2
(0)
有时候程序中会需要一个弹出窗口显示信息,还有些小游戏结束的时候,会简单的弹出一个对话框询问用户是否要重新来一句,如下图:
这篇文章就简单讲解一下这个功能如何实现。
首先,我们需要使用一个 Windows API 函数:MessageBox。该函数原型如下:
int MessageBox(
HWND hWnd, // handle to owner window
LPCTSTR lpText, // text in message box
LPCTSTR lpCaption, // message box title
UINT uType // message box style
);
第一个参数 hWnd 是指向父窗口的句柄,可以通过 EasyX 的函数 GetHWnd() 得到绘图窗口的句柄;
第二个参数 lpText 是要显示的字符串;
第三个参数 lpCaption 是提醒对话框的标题显示字符串;
第四个参数 uType 是对话框的按钮类型及属性,相当丰富,详细请看 MSDN,稍后的范例仅仅列出来一些常用的值。
返回值表示用户点选的按钮。
直接写两个例子吧,相信大家一看就懂:
例 1,实现显示提示信息,等待用户按“确定”按钮:
HWND wnd = GetHWnd();
MessageBox(wnd, "您的系统版本太低,请升级系统。", "警告", MB_OK | MB_ICONWARNING);
例 2,实现文章开始的图片那样的对话框,当用户选择“是”,执行 NewGame(),否则执行 Quit():
HWND wnd = GetHWnd();
if (MessageBox(wnd, "游戏结束。\n重来一局吗?", "询问", MB_YESNO | MB_ICONQUESTION) == IDYES)
NewGame();
else
Quit();
更多的使用方法,请参考 MSDN。
添加评论
取消回复