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

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

VC函数参数说明:tEjSSE6 工作室网络技术空间
    hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。tEjSSE6 工作室网络技术空间
    lpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。tEjSSE6 工作室网络技术空间
    lpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。tEjSSE6 工作室网络技术空间
    uType:指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。tEjSSE6 工作室网络技术空间
        指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。tEjSSE6 工作室网络技术空间
            MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry和Ignore。tEjSSE6 工作室网络技术空间
     MB_CANCELTRYCONTINUE:Microsoft Windows 2000/XP平台下所使用的提示,有三个按钮Cancel, Try Again, Continue.这个按钮 主要是用来代替MB_ABORTRETRYIGNORE。tEjSSE6 工作室网络技术空间
     MB_HELP:把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。tEjSSE6 工作室网络技术空间
     MB_OK:消息框含有一个按钮:OK。这是缺省值。tEjSSE6 工作室网络技术空间
          MB_OKCANCEL:消息框含有两个按钮:OK和Cancel。tEjSSE6 工作室网络技术空间
     MB_RETRYCANCEL:消息框含有两个按钮:Retry和Cancel。tEjSSE6 工作室网络技术空间
     MB_YESNO:消息框含有两个按钮:Yes和No。tEjSSE6 工作室网络技术空间
     MB_YESNOCANCEL:消息框含有三个按钮:Yes,No和Cancel。tEjSSE6 工作室网络技术空间
        指定下列标志中的一个来显示消息框中的图标:标志的含义如下。tEjSSE6 工作室网络技术空间
     MB_ICONEXCLAMATION:一个惊叹号出现在消息框。tEjSSE6 工作室网络技术空间
     MB_ICONWARNING:一个惊叹号出现在消息框。tEjSSE6 工作室网络技术空间
     MB_ICONINFORMATION:一个圆圈中小写字母i组成的图标出现在消息框。tEjSSE6 工作室网络技术空间
     MB_ICONASTERISK:一个圆圈中小写字母i组成的图标出现在消息框。tEjSSE6 工作室网络技术空间
     MB_ICONQUESTION:一个问题标记图标出现在消息框。tEjSSE6 工作室网络技术空间
     MB_ICONSTOP:一个停止消息图标出现在消息框。tEjSSE6 工作室网络技术空间
     MB_ICONERROR:一个停止消息图标出现在消息框。tEjSSE6 工作室网络技术空间
            MB_ICONHAND:一个停止消息图标出现在消息框。tEjSSE6 工作室网络技术空间
        指定下列标志中的一个来显不缺省的按钮:标志的含义如下。tEjSSE6 工作室网络技术空间
     MB_DEFBUTTON1:第一个按钮为缺省按钮。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。tEjSSE6 工作室网络技术空间
          MB_DEFSUTTON2;第二个按钮为缺省按钮。tEjSSE6 工作室网络技术空间
          MB_DEFBUTTON3:第三个按钮为缺省按钮。tEjSSE6 工作室网络技术空间
          MB_DEFBUTTON4:第四个按钮为缺省按钮。tEjSSE6 工作室网络技术空间
 指定下列标志中的一个来显示对话框的形态:标志的含义如卜。tEjSSE6 工作室网络技术空间
     MB_APPLMODAL:在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。但是,用户可以移动到其他线程的窗口且在这些窗口中工作。根据应用程序中窗口的层次机构,用户则以移动到线程内的其他窗口。所有母消息框的子窗口自动地失效,但是弹出窗口不是这样。如果既没有指定MB_SYSTEMMODAL也没有指定MB_TASKMOOAL,则MB_APPLMODAL为缺省的。tEjSSE6 工作室网络技术空间
       MB_SYSTEMMODAL:除了消息框有WB_EX_TOPMOST类型,MB_APPLMODAL和WS_EX_TOPMOST一样。用系统模态消息框来改变各种各样的用户,主要的损坏错误需要立即注意(例如,内存溢出)。如果不是那些与hwnd联系的窗口,此标志对用户对窗口的相互联系没有影响。tEjSSE6 工作室网络技术空间
          MB_TASKMODAL:如果参数hwnd为NULL,除了所有属于当前线程高层次的窗口足失效的,MB_TASKMODALL和MB_ApPLMODAL一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止到调用应用程序甲其他窗口的输入而不是搁置其他线程。tEjSSE6 工作室网络技术空间
 另外,可以指定下列标志。tEjSSE6 工作室网络技术空间
       MB_DEFAULT_DESKTOP_ONLy:接收输入的当前桌面一定是一个缺省桌面。否则,函数调用失败。缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。tEjSSE6 工作室网络技术空间
          MB_HELP:把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。tEjSSE6 工作室网络技术空间
          MB_RIGHT:文本为右调整。tEjSSE6 工作室网络技术空间
          MB_RTLREADING:用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。tEjSSE6 工作室网络技术空间
          MB_SETFOREGROUND:消息框变为前景窗口。在内部系统为消息个调用SetForegrundWindow函数。tEjSSE6 工作室网络技术空间
          MB_TOPMOSI:消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。tEjSSE6 工作室网络技术空间
          Windows NT:调用程序是一个通知事件的用户的服务程序。函数在当前活动桌面上显示一个消息框,即使没有用户登记到计算机。tEjSSE6 工作室网络技术空间

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

tEjSSE6 工作室网络技术空间
VC函数源代码:tEjSSE6 工作室网络技术空间
if (fError) tEjSSE6 工作室网络技术空间
{ tEjSSE6 工作室网络技术空间
    if (MessageBox(hwndDlg, SZNOTFOUND, SZDELETEITEM, tEjSSE6 工作室网络技术空间
        MB_OKCANCEL)==IDOK) tEjSSE6 工作室网络技术空间
    {tEjSSE6 工作室网络技术空间

         // Prompt for a new item name and repeat the command. tEjSSE6 工作室网络技术空间

    }tEjSSE6 工作室网络技术空间
    else tEjSSE6 工作室网络技术空间
    {tEjSSE6 工作室网络技术空间

         // Cancel the command. tEjSSE6 工作室网络技术空间

    }tEjSSE6 工作室网络技术空间
} tEjSSE6 工作室网络技术空间
tEjSSE6 工作室网络技术空间

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

本文源自:http://js.sse6.cn/ 转载请注明。tEjSSE6 工作室网络技术空间

你可能感兴趣的:(VC)