微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DELPHI中MessageBox的用法

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_ICON@R_376_4045@ION = 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_ICON@R_376_4045@ION+MB_OkCancel);
--MessageBox(Form1.Handle,'提示‘,MB_ICON@R_376_4045@ION+MB_OkCancel+MB_DEFBUTTON2);
-- if MessageBox(Form1.Handle,MB_ICON@R_376_4045@ION+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_ICON@R_376_4045@ION, 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           //'是'按钮被按下 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐