特殊说明:版权归个人所有,请勿转载,谢谢合作。
【例2-1】实现了一个简单的消息框,代码示例如下:
#include <windows.h> int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox(NULL, "显示的内容", "标题", MB_OK); return 0; }
今后的程序示例,都是以此代码作为框架,一步一步搭建,不再关心入口函数及参数的含义,而是关心程序实现了什么样的功能。接下来分析一下MessageBox函数实现的具体功能,以及实现方法。
MessageBox函数的功能是弹出一个消息框,如图1.19所示。其中第一个参数(显示为NULL)为窗口句柄(窗口句柄与实例句柄相似,它唯一标识一个窗口),因为还没有创建窗口,所以此处的窗口句柄设计为NULL;第二个参数为消息窗口显示的内容;第三个参数为消息窗口的标题;第四个参数为消息窗口的风格,风格方式有很多种,如表2.4所示。
- 表2.1 消息窗口风格
标识 | 描述 |
MB_ABORTRETRYIGNORE | 消息框含有三个按钮:Abort,Retry和Ignore。 |
MB_OK | 消息框含有一个按钮:OK。这是缺省值。 |
MB_OKCANCEL | 消息框含有两个按钮:OK和Cancel。 |
MB_RETRYCANCEL | 消息框含有两个按钮:Retry和Cancel。 |
MB_YESNO | 消息框含有两个按钮:Yes和No。 |
MB_YESNOCANCEL | 消息框含有三个按钮:Yes,No和Cancel。 |
可以通过“MessageBox(NULL, “显示的内容”, “标题”, MB_OK | MB_ICONWARNING);”来改变显示的消息的级别,如图2.8所示。
- 图2.1 带有惊叹号的消息框
MessageBox函数可以指定表2.5标志中的任一个标识,来显示消息框中的不同级别的图标。
- 表2.2 消息警示图标
标识 | 描述 |
MB_ICONEXCLAMATION、MB_ICONWARNING | 消息框中加入惊叹号。 |
MB_ICONINFORMATION、MB_ICONASTERISK | 消息框中加入气泡图标i。 |
MB_ICONQUESTION | 消息框加入问题标记。 |
MB_ICONSTOP、MB_ICONERROR、MB_ICONHAND | 消息框加入停止标记。 |
MessageBox可以接收返回值,通过返回值可以判断点击了哪个按钮,如果没有足够的内存来创建消息框,则返回值为零。如果函数调用成功,则返回值为表2.6中的一个。
- 表2.3 消息返回值
值 | 说明 |
IDABORT | Abort 按钮被选中。 |
IDCANCEL | Cancel按钮被选中。 |
IDIGNORE | Ignore按钮被选中。 |
IDNO | NO按钮被选中。 |
IDOK | OK按钮被选中。 |
IDRETRY | RETRY按钮被选中。 |
IDYES | YES按钮被选中。 |
如果一个消息框有一个Cancel按钮,按下Esc键被如同按下Cancel键,则函数返回IDCANCEL值。如果消息框没有Cancel按钮,则按Esc键则没有作用。MessageBox函数的返回值其实都是整型的数值,以下是默认的定义。
#define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE 5 #define IDYES 6 #define IDNO 7 #if(WINVER >= 0x0400) #define IDCLOSE 8 #define IDHELP 9
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。