分享

弹出窗口函数MessageBox用法、分析及相应源代码

 9loong 2010-06-08
 

很多次使用弹出窗口作为提示的窗口之用,但是还真的没有认真的去研究一下,今天写程序的时候,希望不仅提示用户话,还加上一个警告的小窗口,顺便也研究一下如何去使用,好啦,现在开始吧。
VC函数原型:
int MessageBox(         
    HWND hWnd,
    LPCTSTR lpText,
    LPCTSTR lpCaption,
    UINT uType
);

VC函数参数说明:
    hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。
    lpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。
    lpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。
    uType:指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。
        指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。
            MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry和Ignore。
            MB_CANCELTRYCONTINUE:Microsoft Windows 2000/XP平台下所使用的提示,有三个按钮Cancel, Try Again, Continue.这个按钮 主要是用来代替MB_ABORTRETRYIGNORE。
            MB_HELP:把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。
            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:一个圆圈中小写字母i组成的图标出现在消息框。
            MB_ICONASTERISK:一个圆圈中小写字母i组成的图标出现在消息框。
            MB_ICONQUESTION:一个问题标记图标出现在消息框。
            MB_ICONSTOP:一个停止消息图标出现在消息框。
            MB_ICONERROR:一个停止消息图标出现在消息框。
            MB_ICONHAND:一个停止消息图标出现在消息框。
        指定下列标志中的一个来显不缺省的按钮:标志的含义如下。
            MB_DEFBUTTON1:第一个按钮为缺省按钮。
            MB_DEFSUTTON2;第二个按钮为缺省按钮。
            MB_DEFBUTTON3:第三个按钮为缺省按钮。
            MB_DEFBUTTON4:第四个按钮为缺省按钮。
        如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。
        指定下列标志中的一个来显示对话框的形态:标志的含义如卜。
            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一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止到调用应用程序甲其他窗口的输入而不是搁置其他线程。
 另外,可以指定下列标志。
            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。
Windows NT:调用程序是一个通知事件的用户的服务程序。函数在当前活动桌面上显示一个消息框,即使没有用户登记到计算机。

VC函数返回值:
    如果程序返回的是失败的话,会返回0,否则会返回相应的数值。
    IDABORT                 终止按钮被选择
    IDCANCEL              取消的按钮被选择
    IDCONTINUE          继续的按钮被选择
    IDIGNORE               忽略的按钮被选择
    IDNO                        否的按钮被选择
    IDOK                        确定的按钮被选择
    IDRETRY                  重试的按钮被选择
    IDTRYAGAIN          重试一次的按钮被选择
    IDYES                       是的按钮被选择


VC函数源代码:
if (fError)
{
    if (MessageBox(hwndDlg, SZNOTFOUND, SZDELETEITEM,
        MB_OKCANCEL)==IDOK)
    {

         // Prompt for a new item name and repeat the command.

    }
    else
    {

         // Cancel the command.

    }
}


相关网址
1. VC2005提示MFC80UD.DLL未找到的解决办法   
http://js./gzsgfrz/jszj/2009-11-29/1154.html
2. VC编程:弹出窗口函数MessageBox用法、分析及相应源代码    http://js./gzsgfrz/jszj/2009-11-29/1155.html
3. VC编程:获取系统毫秒级时间函数GetTickCount用法、分析及相应源代码    http://js./gzsgfrz/jszj/2009-11-29/1156.html
4. VC编程:获取系统进程句柄OpenProcess 用法、分析及相应源代码    http://js./gzsgfrz/jszj/2009-11-29/1157.html
5. VC编程:关闭进程TerminateProcess分析    http://js./gzsgfrz/jszj/2009-11-29/1158.html

本文源自:http://js./ 转载请注明。
(#)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多