欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MessageBox小结

程序员文章站 2022-07-16 13:19:31
...

函数原型:


int MessageBox( HWND hWnd, LPCTSTR lpText, LPCSTR lpCaption,UINT uStyle );

:应先将项目属性中的字符集属性改为多字符集(Unicode)。

(这里不是MFC封装的函数,你可以在任何源文件中调用,只需要加上#include <windows.h>即可)

MFC中该函数原型为:

int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType = MB_OK);

参数

lpszText:指向一个字符串包含要显示的消息。
lpszCaption:指向一个字符串包含标题。
nType:指定消息框的内容和行为。

返回值

指定函数的结果。
用法示例:

int result = MessageBox(TEXT("这是对话框"),TEXT("你好"),MB_ICONINFORMATION|MB_YESNO);

MessageBox小结


参数解释:

  • hwnd:父窗口的句柄,为NULL说明消息框没有父窗口;大多数情况下可以省略不写。
  • lpText:指向要显示字符串的指针,对框框上显示的信息。
  • lpCaption:消息框的标题,即提示框上部分显示的内容。
  • uStyle:消息框的内容和行为,即该消息框有几个按钮、文本对齐等状态,可以在20多个属性值中进行组合。

uStyle可以是在WINUSER.H中定义的一组前缀以MB_开始的常数组合,可以使用"或"(|)运算符将下面显示的三组中各选一个常数组合起来指定消息框的内容和形为: 

  1. // 显示哪些按钮:
  2. #define MB_OK 0X00000000L
  3. #define MB_OKCANCEL 0X00000001L
  4. #define MB_ABORTRERYGNORE 0X00000002L
  5. #define MB_YESNOCANCEL 0X00000003L
  6. #define MB_YESNO 0X00000004L
  7. #define RERYCANCEL 0X00000005L
  8. // 焦点在哪个按钮上:
  9. #define MB_DEFBUTTON1 0X00000000L
  10. #define MB_DEFBUTTON2 0X00000100L
  11. #define MB_DEFBUTTON3 0X00000200L
  12. #define MB_DEFBUTTON4 0X00000300L
  13. // 图示的外观:
  14. #define MB_ICONHAND 0x00000010L
  15. #define MB_ICONQUESTION 0x00000020L
  16. #define MB_ICONEXCLAMATION 0x00000030L
  17. #define MB_ICONASTERISK 0x00000040L
  18. //图示的某些有替代名称:
  19. #define MB_ICONWARNING MB_ICONEXCLAMATION
  20. #define MB_ICONERROR MB_ICONHAND
  21. #define MB_ICONINFORMATION MB_ICONASTERISK
  22. #define MB_ICONSTOP MB_ICONHAND

示例:

  1. MessageBox(NULL, "Hello, Windows!","hello", MB_OK );
  2. MessageBox(NULL, "Hello, Windows!","HelloMsg", MB_YESNO|MB_ICONEXCLAMATION) ;
  3. MessageBox(NULL, "Hello, Windows!","HelloMsg", MB_YESNO|MB_DEFBUTTON1) ;//表示窗口出来后焦点 focus落在Yes(第一个)按钮上

返回值:

  1. IDOK -- 1
  2. IDCANCEL -- 2
  3. IDABORT -- 3
  4. IDRETRY -- 4
  5. IDIGNORE -- 5
  6. IDYES -- 6
  7. IDNO -- 7