一    函数原型及参数

function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;

参数:

hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。
 Text:欲显示的信息字符串。
 Caption:对话框标题字符串。
 Type:对话框类型常量。
 该函数的返回值为整数,用于对话框按钮的识别。

2、类型常量
 对话框的类型常量可由按钮组合、缺省按钮、显示图标、运行模式四种常量组合而成。
 (1)按钮组合常量
 MB_OK = $00000000;         //一个确定按钮
 MB_OKCANCEL = $00000001;      //一个确定按钮,一个取消按钮
 MB_ABORTRETRYIGNORE = $00000002;  //一个异常终止按钮,一个重试按钮,一个忽略按钮
 MB_YESNOCANCEL = $00000003;     //一个是按钮,一个否按钮,一个取消按钮
 MB_YESNO = $00000004;        //一个是按钮,一个否按钮
 MB_RETRYCANCEL = $00000005;     //一个重试按钮,一个取消按钮
 (2)缺省按钮常量
 MB_DEFBUTTON1 = $00000000;     //第一个按钮为缺省按钮
 MB_DEFBUTTON2 = $00000100;     //第二个按钮为缺省按钮
 MB_DEFBUTTON3 = $00000200;     //第三个按钮为缺省按钮
 MB_DEFBUTTON4 = $00000300;     //第四个按钮为缺省按钮
 (3)图标常量
 MB_ICONHAND = $00000010;        //“×”号图标
 MB_ICONQUESTION = $00000020;      //“?”号图标
 MB_ICONEXCLAMATION = $00000030;    //“!”号图标
 MB_ICONASTERISK = $00000040;      //“i”图标
 MB_USERICON = $00000080;        //用户图标
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“!”号图标
 MB_ICONERROR = MB_ICONHAND;      //“×”号图标
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”图标
 MB_ICONSTOP = MB_ICONHAND;       //“×”号图标
 (4)运行模式常量
 MB_APPLMODAL = $00000000;    //应用程序模式,在未结束对话框前也能切换到另一应用程序
 MB_SYSTEMMODAL = $00001000;   //系统模式,必须结束对话框后,才能做其他操作
 MB_TASKMODAL = $00002000;    //任务模式,在未结束对话框前也能切换到另一应用程序
 MB_HELP = $00004000;       //Help Button
 3、函数返回值
 0            //对话框建立失败
 IDOK = 1        //按确定按钮
 IDCANCEL = 2      //按取消按钮
 IDABOUT = 3       //按异常终止按钮
 IDRETRY = 4       //按重试按钮
 IDIGNORE = 5      //按忽略按钮
 IDYES = 6        //按是按钮
 IDNO = 7        //按否按钮

python调用MessgeBoxW

import ctypes
user = ctypes.windll.LoadLibrary("user32.dll")
user.MessageBoxW(None, '调用C函数例子', '提示信息', 0)

ahk 通过DLLCALL方式实现:

; 例子: 调用 Windows API 函数 "MessageBox" 并报告用户按下了哪个按钮.
WhichButton:= MessageBox(0,"调用MessageBox函数例子","提示信息",4)
MsgBox You pressed button #%WhichButton%.
MessageBox(hWnd,Text, Caption,Options)
{return DllCall("MessageBox", "Int",hWnd, "Str", Text, "Str", Caption, "Int",Options)
}

ahk 内置方式实现(简单直接):
MsgBox,Options,Title,Text,Timeout

Options 参数可以为一个或多个下列值的组合(和).

功能 十进制值 十六进制值
确定 (即仅显示一个 "确定" 按钮) 0 0x0
确定/取消 1 0x1
终止/重试/忽略 2 0x2
是/否/取消 3 0x3
是/否 4 0x4
重试/取消 5 0x5
Cancel/Try Again/Continue 6 0x6
添加一个 "帮助" 按钮 (请参阅后面的备注) 16384 0x4000
     
错误图标 (停止/错误) 16 0x10
问号图标 32 0x20
惊叹号图标 48 0x30
星号图标 (信息) 64 0x40
     
让第二个按钮成为默认按钮 256 0x100
让第三个按钮成为默认按钮 512 0x200
     
系统模态 (总是在顶部) 4096 0x1000
任务模态 8192 0x2000
置顶(WS_EX_TOPMOST样式)
(和系统模态类似, 但省略了标题栏图标)
262144 0x40000
     
让文本右对齐显示 524288 0x80000
用于希伯来语/阿拉伯语的从右向左的阅读顺序 1048576 0x100000

备注

使用上面的表格时, 可以把您期望用于 MsgBox 的选项值加在一起. 例如, 要显示一个默认按钮为 "否" 的 "是"/"否" 消息框, 那么需要把 Options 的值设置为 256+4 (260). 使用十六进制表示为 0x100+0x4 (0x104).

[WIN32]MessageBox用法相关推荐

  1. C# MessageBox 用法大全(转)

    C# MessageBox 用法大全 http://www.cnblogs.com/Tammie/archive/2011/08/05/2128623.html 我们在程序中经常会用到MessageB ...

  2. MessageBox()用法简介

    MessageBox () 功能显示一个消息对话框. 语法 MessageBox (text,title{,icon{,button{,default}}}) 参数title:string类型,指定消 ...

  3. C++播放音乐和MFC的messagebox用法

    C++播放音乐 和MFC messagebox()函数不能使用的问题 文章目录 C++播放音乐 和MFC messagebox()函数不能使用的问题 前言 一.使用mciSendString播放音乐 ...

  4. MFC中MessageBox()用法

    函数原型: int MessageBox( HWND hWnd, LPCTSTR lpText, LPCSTR lpCaption,UINT uStyle ); 注:应先将项目属性中的字符集属性改为多 ...

  5. Winform中MessageBox用法大全

    1. 只显示提示信息: MessageBox.Show("Hello World!"); 2. 给MessageBox添加标题: MessageBox.Show("Hel ...

  6. C# MessageBox用法实例 (附效果图)

    Displays a message box. Msdn MessageBox.show 方法   1.   当要显示如图3个按钮时,并要获得单击不同按钮的进行不同的相应时,可以 在 MessageB ...

  7. C#中MessageBox()用法详解

    简介: MessageBox()功能是显示一个消息对话框,其中包含一个系统图标. 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息. 格式: MessageBox.Show(string T ...

  8. python中messagebox用法实例_pyqt4教程之messagebox使用示例分享

    #coding=utf-8 #对话框 import sys from PyQt4 import QtGui, QtCore class Window( QtGui.QWidget ): def __i ...

  9. VS中MessageBox与AfxMessageBox用法与区别

    一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(HWN ...

最新文章

  1. Andorid自定义attr的各种坑
  2. C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
  3. Leetcode 剑指 Offer 09. 用两个栈实现队列 (每日一题 20210915)
  4. 小试牛刀(1)简单实现用户添加和登录(文件版)
  5. window.open()新开浏览器窗口被拦截处理
  6. 媒体层图形技术之AssetsLibrary 学习笔记
  7. jQuery获得select的值及其他操作
  8. Android SlidingMenu 仿网易新闻客户端布局
  9. 新一季“十大最堵互联网公司”出炉:360百度腾讯跻身三甲
  10. ​搞懂微服务,从捕捉一头野猪说起
  11. 关于body.clientHeight,body.clientWidht获取的不是可视高度的问题
  12. matlab图片数据库读取,MATLAB无法读取图像数据库问题
  13. C语言中的常量与变量
  14. Armbian安装Docker之后的100种玩儿法《动态域名解析DDNS自动更新》
  15. bim综合软件:一次性快速解锁所有轴网,生成轴网
  16. Css打造一个简单的静态七巧板
  17. 动态规划之扔鸡蛋(或手机)问题
  18. DTCC呼吁银行和监管机构帮助解决区块链安全问题
  19. Mac小技巧之分屏和Dock栏
  20. 2021-01-05 关于股票

热门文章

  1. ubuntu20.04安装matlab2018b
  2. nets_comment_class.py-网易单曲评论-music-163
  3. 微信小游戏上线字节平台超全攻略
  4. 错误:类 SubClass 是公共的, 应在名为 SubClass.java 的文件中声明
  5. 支付回答——如何理解借记和贷记
  6. 一起来学 R编程吧(2)---判断语句switch函数的用法
  7. 转载总结总结一些常用的页面小技巧
  8. 微信转发软件后缀_微信发送不了100M的视频?其实只需要改个后缀,长知识了...
  9. android apn切换工具,Android修改和添加APN网络
  10. lightdm 循环登录问题