DELPHI中MessageBox的用法

本文详细介绍了MessageBox函数的使用方法,包括函数原型、参数说明、类型常量、返回值等,并提供了多个实例展示如何设置对话框的按钮、图标、焦点按钮及显示模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MessageBox对话框 输入控件的   ImeName属性把输入法去掉就默认为英文输入了

 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。
 1、函数原型及参数
 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;
 hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。
 Text:欲显示的信息字符串。
 Caption:对话框标题字符串。
 Type:对话框类型常量。
 该函数的返回值为整数,用于对话框按钮的识别。

引数:
1.Text:要显示的信息
2.Caption:信息窗口的标题文字
3.Flags:窗体标志(说明是何种类型的信息窗体)
3.1.可指定信息窗体上的图标
3.2.可指定信息窗体上出现的按钮
3.3.可指定预设Focus在哪一个按钮上
3.4.可指定是否Modal
3.5.其他

 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

指定下列标志中的一个来显示对话框的形态:标志的含义如下:
MB_APPLMODAL:在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。但 是,用户可以移动到其他线程的窗口且在这些窗口中工作。根据应用程序中窗口的层次机构,用户则以移动到线程内的其他窗口。所有母消息框的子窗口自动地失 效,但是弹出窗口不是这样。

如果既没有指定MB_SYSTEMMODAL也没有指定MB_TASKMOOAL,则MB_APPLMODAL为缺省的。

MB_SYSTEMMODAL:除了消息框有WB_EX_TOPMOST类 型,MB_APPLMODAL和WS_EX_TOPMOST一样。用系统模态消息框来改变各种各样的用户,主要的损坏错误需要立即注意(例如,内存溢 出)。如果不是那些与hwnd联系的窗口,此标志对用户对窗口的相互联系没有影响。

MB_TASKMODAL:如果参数hwnd为NULL,除了所有属于当前线程高层次的窗口足 失效的,MB_TASKMODALL和MB_ApPLMODAL一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止到调用 应用程序甲其他窗口的输入而不是搁置其他线程。
另外,可以指定下列标志。

对于task而言,是modalform
一般来说,这跟MB_APPLMODAL是等效的,但是当应用程式中的所有
form都隐藏的时候,就必须使用这个,才能达到modal的目的

MB_DEFAULT_DESKTOP_ONLy:接收输入的当前桌面一定是一个缺省桌面。否则,函数调用失败。缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。

MB_HELP:把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。

MB_RIGHT:将讯息文字向右对齐,文本为右调整。

MB_RTLREADING:用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。

MB_SETFOREGROUND:消息框变为前景窗口。在内部系统为消息个调用SetForegrundWindow函数。

MB_TOPMOSI:将讯息视窗提至最前面,消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。

 3、函数返回值
 0            //对话框建立失败
 idOk = 1        //按确定按钮
 idCancel = 2      //按取消按钮
 idAbout = 3       //按异常终止按钮
 idRetry = 4       //按重试按钮
 idIgnore = 5      //按忽略按钮
 idYes = 6        //按是按钮
 idNo = 7        //按否按钮

例子:messagebox(0,'没有选择播放类型','错误',MB_ICONEXCLAMATION );

--Application.MessageBox('MessageBox','警告',MB_ICONWARNING+MB_YesNo);
--MessageBox(Form1.Handle,'MessageBox','提示',MB_ICONINFORMATION+MB_OkCancel);
--MessageBox(Form1.Handle,'MessageBox','提示‘,MB_ICONINFORMATION+MB_OkCancel+MB_DEFBUTTON2);
-- if MessageBox(Form1.Handle,'MessageBox','提示',MB_ICONINFORMATION+MB_OkCancel)= idOk then
     begin
       ShowMessage('Ok');
     end;

如果想判断用户选择了那个按钮可以这样
var
  x:integer;
begin
x:=MessageBox(0,'你确定此操作吗?','询问',MB_OKCANCEL);
end;
判断时可以是if x=1 then ..或if x=idok then...


自定义出现的按钮:

MB_ABORTRETRYIGNORE    //按钮: 终止、重试、忽略 
MB_OK                           //按钮: 确定 (默认出现的按钮) 
MB_OKCANCEL              //按钮: 确定、取消 
MB_RETRYCANCEL         //按钮: 重试、取消 
MB_YESNO                    //按钮: 是、否 
MB_YESNOCANCEL        //按钮: 是、否、取消 

自定义出现的图标:

MB_ICONEXCLAMATION, MB_ICONWARNING    //带感叹号的提醒图标 
MB_ICONINFORMATION, MB_ICONASTERISK    //带”i“符号的信息提示图标 
MB_ICONQUESTION                                         //带问号的询问图标 
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND    //带停止标志的图标 

自定义默认焦点的按钮:

MB_DEFBUTTON1    //第一个按钮设为默认(默认参数是第一个按钮) 
MB_DEFBUTTON2    //第二个按钮设为默认 
MB_DEFBUTTON3    //第三个按钮设为默认 
MB_DEFBUTTON4    //第四个按钮设为默认 

自定义消息框显示模式:

MB_APPLMODAL    //用户必须响应消息框才能继续在由hWnd参数标识的窗口工作,MB_APPLMODAL 是默认参数 
MB_SYSTEMMODAL //跟MB_APPLMODAL相似,但是多了WS_EX_TOPMOST窗口风格 
MB_TASKMODAL    //跟MB_APPLMODAL相似,但是当参数句柄为空时,属于当前任务的所有顶级窗口被禁用 

此外,还有一些其他标识:

MB_DEFAULT_DESKTOP_ONLY    //默认桌面才能创建成功 
MB_HELP            //添加一个”帮助“按钮 
MB_RIGHT          //消息文本右对齐 
MB_RTLREADING            //从右到左显示消息内容和标题 
MB_SETFOREGROUND    //使消息框成为前置窗口 
MB_TOPMOST                //使消息框在最上层显示 
MB_SERVICE_NOTIFICATION    //Windows NT only 
MB_SERVICE_NOTIFICATION_NT3X    //Windows NT only 

当没有足够内存创建消息框的时候,返回值为0,否则正常返回值如下:

IDABORT      //'终止'按钮被按下 
IDCANCEL    //'取消'按钮被按下 
IDIGNORE    //'忽略'按钮被按下 
IDNO           //'否'按钮被按下 
IDOK           //'确定'按钮被按下 
IDRETRY      //'重试'按钮被按下 
IDYES          //'是'按钮被按下 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值