[WIN32]MessageBox用法

189 篇文章 3 订阅
16 篇文章 0 订阅

一    函数原型及参数

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 参数可以为一个或多个下列值的组合(和).

功能十进制值十六进制值
确定 (即仅显示一个 "确定" 按钮)00x0
确定/取消10x1
终止/重试/忽略20x2
是/否/取消30x3
是/否40x4
重试/取消50x5
Cancel/Try Again/Continue60x6
添加一个 "帮助" 按钮 (请参阅后面的备注)163840x4000
   
错误图标 (停止/错误)160x10
问号图标320x20
惊叹号图标480x30
星号图标 (信息)640x40
   
让第二个按钮成为默认按钮2560x100
让第三个按钮成为默认按钮5120x200
   
系统模态 (总是在顶部)40960x1000
任务模态81920x2000
置顶(WS_EX_TOPMOST样式)
(和系统模态类似, 但省略了标题栏图标)
2621440x40000
   
让文本右对齐显示5242880x80000
用于希伯来语/阿拉伯语的从右向左的阅读顺序10485760x100000

备注

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


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值