当前位置:主页   - 电脑 - 程序设计 - VB
Windows API一日一练(4)MessageBox函数
来源:网络   作者:蔡军生   更新时间:2011-08-04
收藏此页】    【字号    】    【打印】    【关闭

  为了显示提示信息给用户,Windows是提供了一个非常方便的API函数MessageBox给用户使用,使用这个API函数可以显示简单的文字信息出来,提醒或提示用户进行下一步操作。

  函数声明如下:

WINUSERAPI
int
WINAPI
MessageBoxA(
    __in_opt HWND hWnd,
    __in_opt LPCSTR lpText,
    __in_opt LPCSTR lpCaption,
    __in UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxW(
    __in_opt HWND hWnd,
    __in_opt LPCWSTR lpText,
    __in_opt LPCWSTR lpCaption,
    __in UINT uType);
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE

  从上面可以看出,Windows的API是两种声明,一种是使用到ANSI编码,一种是使用到UNICODE编码的API函数。通过宏定义把这两种API名称统一到MessageBox的声明。这是一种使用选择不同API的技术,在今后的编程里,大多数都需要使用UNICODE编码了,因为可以适应不同国家的语言显示,可以国际化编程,特别对于中文支持更加需要UNICODE编程。

  下面来解释一下参数的定义:

  hWnd是指向父窗口的句柄,如果没有父窗口,可以把这个参数设置为NULL。

  lpText是需要显示的文字。显示字符串的起始地址。

  lpCaption是在窗口上标题显示。

  uType是窗口组合按钮和显示图标的类型。后面再详细说明。

  返回值是一个整数,如果有取消按钮,并且按下ESC键就返回IDCANCEL。如果有其它按钮,并且按下,就返回相应的值。主要的值如下:

  IDABORT 放弃按钮

  IDCANCEL取消按钮

  IDCONTINUE 继续按钮

  IDIGNORE 忽略按钮

  IDNO 否按钮

  IDOK 确定按钮

  IDRETRY 重试按钮

  IDTRYAGAIN 重试按钮

  IDYES 是按钮

  演示例子如下:

Windows API一日一练(4)MessageBox函数

  图片看不清楚?请点击这里查看原图(大图)。

  上面显示的代码是:

#001 //MB_DEFBUTTON4
#002 int CMsgBox::Show_MB_DEFBUTTON4(void)
#003 {
#004 //显示MB_DEFBUTTON4。
#005 return ::MessageBox(NULL, _T("MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP"),
#006         _T("第一个应用程序"), MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP|MB_ICONQUESTION);
#007 }

  uType常用的选择值如下:

  按钮类型:

MB_ABORTRETRYIGNORE
MB_CANCELTRYCONTINUE
MB_HELP
MB_OK
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL

  图标类型:

MB_ICONEXCLAMATION
MB_ICONWARNING
MB_ICONINFORMATION
MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP
MB_ICONERROR
MB_ICONHAND

  设置缺省按钮值:

MB_DEFBUTTON1
MB_DEFBUTTON2
MB_DEFBUTTON3
MB_DEFBUTTON4

  修改显示信息窗口的属性:

MB_APPLMODAL
MB_SYSTEMMODAL
MB_TASKMODAL
MB_RIGHT
MB_RTLREADING
MB_SETFOREGROUND
MB_TOPMOST
MB_SERVICE_NOTIFICATION

编缉推荐阅读以下文章

  • Windows API一日一练(20)LoadString、LoadIcon和LoadCursor函数
  • Windows API一日一练(19)DestroyWindow函数
  • Windows API一日一练(18)EndDialog函数
  • Windows API一日一练(17)DialogBox和DialogBoxParam函数
  • Windows API一日一练(16)BeginPaint和EndPaint函数
  • Windows API一日一练(15)PostQuitMessage函数
  • Windows API一日一练(14)DispatchMessage函数
  • Windows API一日一练(13)TranslateMessage函数
  • Windows API一日一练(12)TranslateAccelerator函数
  • Windows API一日一练(11)GetMessage函数
其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明