参考课件 msgbox函数与选择结构共31页文档
- 格式:ppt
- 大小:2.22 MB
- 文档页数:31


信息框函数MsgBox信息框是Windows应用程序中使用得较多的一种对话机制,它被广泛地用于提示、选择程序走向,是一个重要的程序控制手段。
Delphi 提供的信息框函数MessageDlg功能比较强,其最大优点是可以任意设定信息框的按钮(使用了集合类型),但其缺点也是很明显的,主要表现在标题字符串不能由用户自己设置;窗口弹出时寂静无声;按钮不能随着Windows的不同语言的版本显示不同的文字(例如无论在哪种语言版本下都只能显示"OK"、"Yes"等英文字符)。
这些优点和缺点都是由于它是Delphi自己实现的,而不是通过调用系统API函数实现的,故不能使用系统的语言环境、多媒体等资源。
这样,所开发的程序在中文版中显示信息框时与周围的窗口显得极不协调。
而VB在这方面却做得较好,所以我们按照VB的格式自定义一个信息框函数MsgBox。
下面的函数都假定是在TForml中定义的。
为了使用方便,我们首先在 Interfaces段中定义一些符号常量:const{第一组:按钮内容选择}OKOnly=0;{仅显示"确定"按钮}OKCancel=1;{显示"确定"和"取消"按钮}AbortRetryIgnore=2;{"中止""重试""放弃"}YesNoCancel=3;{"是""否""取消"}YesNo=4;{"是"和"否"}RetryCancel=5;{"重试""取消"}{第二组:显示图标选择}Critical=16;{"STOP"图标}Question=32;{"?"图标}Excalamation=48;{"!"图标}Information=64;{"i"图标}{第三组:缺省指针位置(激活状态)}DefaultButton1=0;{第一按钮}DefaultButton2=256{第二按钮}DefaultButton3=512{第三按钮}{第四组:信息框方式}ApplicationModal=0;{应用方式}SystemModal=4096;{系统方式}然后,建立函数MsgBox,由于API函数中使用的字符串必须以mull结尾,所以使用了另一个自定义的函数StrToPch来将Pascal类型字符串转换成为以mull结尾的字符串。
计算机MessageBox函数函数功能:该函数创建、显示、和操作一个消息框。
消息框含有应用程序定义的消息和标题,加上预定义图标与Push(下按)按钮的任何组合。
函数原型:int MessageBox(HWND hWnd,LPCTSTR IpCaption,UINT UType);参数:hWnd:标识将被创建的消息框的拥有窗口。
如果此参数为NULL,则消息框没有拥有窗口。
IpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。
IpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。
uType:指定一个决定对话框的内容和行为的位标志集。
此参数可以为下列标志组中标志的组合。
指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。
MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry和Ignore。
MB_OK:消息框含有一个按钮:OK。
这是缺省值。
MB_OKCANCEL:消息框含有两个按钮:OK和Cancel。
MB_RETRYCANCEL:消息框含有两个按钮:Retry和Cancel。
MB_YESNO:消息框含有两个按钮:Yes和No。
MB_YESNOCANCEL:消息框含有三个按钮:Yes,No和Cancel。
指定下列标志中的一个来显示消息框中的图标:标志的含义如下。
MB_ICONEXCLAMATION:MB_ICONWARNING:一个惊叹号出现在消息框。
MB_ICONINFORMATION:MB_ICONASTERISK:一个圆圈中小写字母i组成的图标出现在消息框。
MB_ICONOUESTION:一个问题标记图标出现在消息框。
MB_ICONSTOP:MB_ICONERROR:MM_ICONHAND:一个停止消息图标出现在消息框。
指定下列标志中的一个来显不缺省的按钮:标志的含义如下。
MB_DEFBUTTON1:第一个按钮为缺省按钮。