AfxMessageBox()与MessageBox()的区别
- 格式:doc
- 大小:22.00 KB
- 文档页数:2
MsgBox函数用法讲解VBA中msgbox的用法小结1、作用在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”)。
通常用作显示变量值的一种方式。
2、语法MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])参数说明:(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本。
其最大长度约为1024个字符,由所用字符的宽度决定。
如果prompt的内容超过一行,则可以在每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)&Chr(10))将各行分隔开来。
(2)Buttons,可选的参数,为数值表达式的值之和,指定显示的按钮的数目及形式、使用的图标样式、缺省按钮及消息框的强制回应等,可以此定制消息框。
若省略该参数,则其缺省值为0。
设置值见下表。
(3)Title,可选的参数,表示在消息框的标题栏中所显示的文本。
若省略该参数,则将应用程序名放在标题栏中。
(4)Helpfile,可选的参数,为字符串表达式,提供帮助文件。
若有Helpfile,则必须有Context。
(5)Context,可选的参数,为数值表达式,提供帮助主题。
若有Context,则必须有Helpfile。
3、Button参数用于MsgBox函数中Button参数的常量常量值说明vbOKOnly0只显示“确定”按钮VbOKCancel1显示“确定”和“取消”按钮VbAbortRetryIgnore2显示“终止”、“重试”和“忽略”按钮VbYesNoCancel3显示“是”、“否”和“取消”按钮VbYesNo4显示“是”和“否”按钮VbRetryCancel5显示“重试”和“取消”按钮VbCritical16 显示“关键信息”图标VbQuestion32 显示“警告询问”图标VbExclamation48 显示“警告消息”图标VbInformation64 显示“通知消息”图标vbDefaultButton10 第一个按钮是缺省值(缺省设置) vbDefaultButton2256第二个按钮是缺省值vbDefaultButton3512第三个按钮是缺省值vbDefaultButton4768第四个按钮是缺省值vbApplicationModal0应用程序强制返回;应用程序一直被挂起,直到用户对消息框作出响应才继续工作vbSystemModal4096系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作vbMsgBoxHelpButton16384将Help按钮添加到消息框VbMsgBoxSetForeground 65536指定消息框窗口作为前景窗口vbMsgBoxRight524288文本为右对齐vbMsgBoxRtlReading1048576指定文本应为在希伯来和阿拉伯语系统中的从右到左显示说明:(1)第一组值(0–5)描述了消息框中显示的按钮的类型与数目;第二组值(16,32,4 8,64)描述了图标的样式;第三组值(0,256,512,768)说明哪一个按钮是缺省值;而第四组值(0,4096)则决定消息框的强制返回性。
mfc函数详解MFC(Microsoft Foundation Class)是一种面向对象的Windows应用程序框架,它是微软公司在Windows操作系统下的视窗类库,是Visual C++的一些类和函数的集合。
MFC的作用是提供一种高级的、面向对象的编程结构,让程序员更加容易地开发Windows应用程序。
下面是一些常用的MFC函数及其详解:1. AfxMessageBox函数原型:int AfxMessageBox(LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0);函数作用:显示一个消息框,包含文本、标题和按钮。
参数解释:lpszText:要显示的消息文本。
nType:消息框类型,包括按钮以及图标等样式。
nIDHelp:帮助ID,用于消息框的帮助文件。
返回值:用户选择的按钮行为,如“取消”、“确定”等。
2. AfxGetMainWnd函数原型:CWnd* AfxGetMainWnd( );函数作用:获取当前线程的主窗口对象指针。
参数解释:无。
返回值:当前线程的主窗口对象指针。
3. CString.Format函数原型:int Format(LPCTSTR lpszFormat, ...);函数作用:根据格式控制符格式化字符串。
参数解释:lpszFormat:格式化字符串,格式控制符用“%”标识。
...:格式控制符中各个参数的值。
返回值:格式化后的字符串长度。
4. CListBox.SetCurSel函数原型:int SetCurSel(int nIndex);函数作用:设置列表框中当前选定项的索引。
参数解释:nIndex:要选定项的索引,从0开始。
返回值:如果设置成功,则返回新选定项的索引;否则,返回LB_ERR。
5. CEdit.SetWindowText函数原型:void SetWindowText(LPCTSTR lpszString); 函数作用:设置编辑框的文本内容。
信息框函数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结尾的字符串。
mfc中messagebox用法中文例句:嘿,我在MFC 程序里想给用户提个醒儿,就用MessageBox 弹出个框告诉他们“操作成功啦,赶紧接着嗨呀!”,那感觉倍儿爽,就像给他们发了个开心小炸弹。
AfxMessageBox ("操作成功啦,赶紧接着嗨呀!");哟呵,程序出岔子啦,我立马用MessageBox 甩出来个警告框,对着用户喊:“哎呀妈呀,这咋搞的呀,咋出错了呢,赶紧瞅瞅呀!”,那紧张的氛围一下子就起来了。
MessageBox (NULL, "哎呀妈呀,这咋搞的呀,咋出错了呢,赶紧瞅瞅呀!", "错误警告", MB_OK | MB_ICONERROR);我正捣鼓MFC 呢,想问问用户是不是真要删除那重要文件,就弄了个MessageBox,跟他们说:“嘿,亲,你可真要删这宝贝文件呀?删了可就没喽,想好了没呀?”,感觉自己像个操心的老妈子。
int nRet = MessageBox (NULL, "嘿,亲,你可真要删这宝贝文件呀?删了可就没喽,想好了没呀?", "确认删除", MB_YESNO |MB_ICONQUESTION);在MFC 项目里,当登录失败的时候,我气呼呼地用MessageBox 吼道:“哼,登录咋就失败了呢,你是不是输错密码啦,好好想想呀!”,那气愤劲儿都快从框里冒出来了。
MessageBox (NULL, "哼,登录咋就失败了呢,你是不是输错密码啦,好好想想呀!", "登录失败", MB_OK | MB_ICONEXCLAMATION);哇哦,完成了一项超难的任务,我兴奋地用MessageBox 向用户报喜:“哇哈哈,任务搞定啦,厉害不,快给我点赞呀!”,就盼着他们也跟着乐呢。
AfxMessageBox ("哇哈哈,任务搞定啦,厉害不,快给我点赞呀!");嘿呀,用户在MFC 界面里瞎点,我就用MessageBox 提醒他们:“喂喂喂,别瞎点呀,按规矩来呀,不然要出乱子咯!”,真怕他们把程序搞崩咯。
AfxMessageBox的标题就是字符串资源中的AFX_IDS_APP_TITLEVC中MessageBox的常见用法一、关于MessageBox消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
1.MessageBox("这是一个最简单的消息框!");2.MessageBox("这是一个有标题的消息框!","标题");3.MessageBox("这是一个确定取消的消息框!","标题", MB_OKCANCEL );4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );5.MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL );6.if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)return;附其它常用属性:系统默认图标,可在消息框上显示X错误MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR?询问MB_ICONQUESTION!警告MB_ICONEXCLAMATION and MB_ICONWARNINGi信息MB_ICONASTERISK and MB_ICONINFORMATION按钮的形式MB_OK 默认MB_OKCANCEL 确定取消MB_YESNO 是否MB_YESNOCANCEL 是否取消返回值IDCANCEL 取消被选IDNO 否被选IDOK 确定被选IDYES 是被选注意!!!:以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK); 或MessageBox(hWnd,"ddd","ddd",MB_OK); hWnd为某窗口的句柄,或者直接用AfxMessageBox。
AfxMessageBox的标题就是字符串资源中的AFX_IDS_APP_TITLEVC中MessageBox的常见用法一、关于MessageBox消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
1.MessageBox("这是一个最简单的消息框!");2.MessageBox("这是一个有标题的消息框!","标题");3.MessageBox("这是一个确定取消的消息框!","标题",MB_OKCANCEL);4.MessageBox("这是一个警告的消息框!","标题",MB_ICONEXCLAMATION);5.MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL);6.if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)return;附其它常用属性:系统默认图标,可在消息框上显示X错误MB_ICONHAND,MB_ICONSTOP,and MB_ICONERROR?询问MB_ICONQUESTION!警告MB_ICONEXCLAMATION and MB_ICONWARNINGi信息MB_ICONASTERISK and MB_ICONINFORMATION按钮的形式MB_OK默认MB_OKCANCEL确定取消MB_YESNO是否MB_YESNOCANCEL是否取消返回值IDCANCEL取消被选IDNO否被选IDOK确定被选IDYES是被选注意!!!:以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK);或MessageBox(hWnd,"ddd","ddd",MB_OK);hWnd为某窗口的句柄,或者直接用AfxMessageBox。
MsgBox函数和语句基础知识2007-07-27 10:15:46 阅读71 评论0 字号:大中小订阅MsgBox其实有两种格式:一、MsgBox函数格式:MsgBox(msg[,type][,title][,helpfile,context])该函数有5个参数,第一个是必需的,后面的都是可选的。
(1)msg:是一个字符串,长度不能超过1024个字符,超过的会被截掉。
这个字符串的内容就是在MsgBox 函数产生的对话框内显示。
如果一行显示不完,可以用"Chr$(13)+Chr$(10)”强制换行。
(2)type:是一个整数值或符号常量,用来控制在对话框内显示的按钮、图标的种类及数量。
比如说是显示“确定”、“取消”还是显示“终止”、“重试”、“忽略”等。
由于type参数的取值较多,就不一一例举了,楼主可以自己去搜搜。
(3)title:也是字符串,其内容就是对话框的标题。
(4)helpfile,context:helpfile是一个字符串变量或字符串表达式,用来表示帮助文件的名字;context 是一个数值变量或表达式,用来表示相关帮助主题的帮助目录号。
这两个参数必须同时使用或同时省略。
如果使用了这两个参数,对话框中会出现一个“帮助”按钮,单击或按F1就可以得到相关帮助信息。
二、MsgBox语句格式:MsgBox msg[,type][,title][,helpfile,context]各参数的含义与作用与上面的MsgBox函数一样的。
三、MsgBox函数与MsgBox语句的区别MsgBox函数有返回值,而MsgBox语句是没有返回值的。
例如:函数:x=MsgBox("戴草帽",vbOKOnly,"工程1")这个对话框只有一个确定按钮,返回值为1,也就是说用户如果点了这个确定,x就等于1了。
语句:MsgBox "戴草帽",vbOKOnly,"工程"这个是没有返回值的。
一函数原型及参数function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。
Text:欲显示的信息字符串。
Caption:对话框标题字符串。
Type:对话框类型常量。
该函数的返回值为整数,用于对话框按钮的识别。
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 Button3、函数返回值0//对话框建立失败IDOK = 1//按确定按钮IDCANCEL = 2//按取消按钮IDABOUT = 3//按异常终止按钮IDRETRY = 4//按重试按钮IDIGNORE = 5//按忽略按钮IDYES = 6//按是按钮IDNO = 7//按否按钮二用法1. MessageBox("这是一个最简单的消息框!");2. MessageBox("这是一个有标题的消息框!","标题");3. MessageBox("这是一个确定取消的消息框!","标题", MB_OKCANCEL );4. MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );5. MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL );6. if(MessageBox("一种常用的应用","标题" ,MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)return;注意:以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK); 或MessageBox(hWnd,"ddd","ddd",MB_OK);hWnd为某窗口的句柄,或者直接用AfxMessageBox。
第1大题:单选题(重要题:共40题,每题1分,难中易比例2:4:4)1.在Windows编程约定中,软件开发包的英文缩写是______。
(易| 重要)A. APIB. SDIC. SDKD. MDI正确答案:C2.以下对应于unsigned long 的数据类型为:()(易| 重要)A. WORDB. DWORDC. INTD. BYTE正确答案:B3.如果要严格按照匈牙利命名法命名1个全局窗口句柄,以下变量命名正确的是()。
(中| 重要)A. g_hWndB. m_hWndC. g_pWndD. m_pWnd正确答案:A4.典型的Windows窗口程序的流程为:()(中| 重要)A. 注册窗口类->创建窗口->显示窗口->更新窗口->消息循环B. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环C. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环D. 注册窗口类->创建窗口->更新窗口->显示窗口->消息循环正确答案:A5.GDI环境中,窗口的坐标系是如何构成的?(易| 重要)A. 左上角为原点,x轴正方向为水平向右,y轴正方向为竖直朝上B. 中间为原点,x轴正方向为水平向右,y轴正方向为竖直朝上C. 左下角为原点,x轴正方向为水平向右,y轴正方向为竖直朝下D. 左上角为原点,x轴正方向为水平向右,y轴正方向为竖直向下正确答案:D6.Windows编程中,定时器消息是()(易| 重要)A. WM_TIMEB. WM_TIMERC. WM_ON_TIMED. WM_COMMAND正确答案:A7.设备环境DC的全称为:(易| 重要)A. Device ContentB. Device ContextsC. Device ConfigD. Device Conter正确答案:B8.进程最常见和最理想的结束方式为:()(中| 重要)A. 主线程的入口函数返回B. 进程中的一个线程调用ExitProcess函数C. 另一个进程中的线程调用TerminateProcess函数D. 进程中的所有线程自行终止运行正确答案:A9.线程正常结束的方式是:()(中| 重要)A. 线程函数返回B. 调用ExitThread函数C. TerminateThreadD. 包含线程的进程终止运行正确答案:A10.两个没有任何安全措施的线程同时对一个数作自增(++)运算,以下说法正确的是:()(难| 重要)A. 自增(++)是原子操作,不会出现错误B. 自增(++)是原子操作,但是两个加法先后顺序未知C. 自增(++)不是原子操作,最后结果是加2D. 自增(++)不是原子操作,最后结果不一定是2正确答案:D11.SetWaitableTimer的参数lPeriod如果为正值,单位是什么?(中| 重要)A. 分钟(m)B. 秒(s)C. 毫秒(ms)D. 纳秒(ns)正确答案:C12.在MFC编程中,如果要显示1个树型视图,那么适合选用的视图类是()。
AfxMessageBox()与MessageBox()的区别
AfxMessageBox的函数原型
int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 ); int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) –1 );
在第一种形式中,lpszText表示在消息框内部显示的文本,消息框的标题为应用程序的可执行文件名(如Hello)。
在第二种形式中,nIDPrompt为要显示的文本字符串在字符串表中的ID。
函数调用时会自动从字符串表中载入字符串并显示在消息框中。
nType为消息框中显示的按钮风格和图标风格的组合,可以采用|(或)操作符组合各种风格。
按钮风格
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_ICONINFORMATION 显示一个i图标,表示提示
MB_ICONEXCLAMATION 显示一个惊叹号,表示警告
MB_ICONSTOP 显示手形图标,表示警告或严重错误
MB_ICONQUESTION 显示问号图标,表示疑问
与AfxMessageBox类似的函数MessageBox,它是CWnd的类成员函数:
int MessageBox( LPCTSTR lpszText,LPCTSTR lpszCaption = NULL,UINT nType = MB_OK );
两个函数的区别:AfxMessageBox比MessageBox简单一些,因为它是一个全局函数所以不需要对应的一个窗口类,但是不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。
举例:
AfxMessageBox(“Are you sure?”,MB_YESNO|MB_ICONQUESTION);
int a = MessageBox(TEXT( "是否确认删除?" ), TEXT("Warning!!"),4);
if (a == 6)
AfxMessageBox("Yes");
else
AfxMessageBox("No");
(其中#define IDYES 6 #define IDNO 7)
他们的区别,我收集整理了下主要有:
1.MessageBox 如果在非CWnd类中使用则是API函数,使用起来非常不便,必须指定标题和样式
否则使用CWnd类的函数,只需一个内容参数就可以了,AfxMessageBox和CWnd类成员
函数类似,使用起来很方便,因为是Afx 基于框架的函数
2.MessageBox是模态对话框,你不进行确认时程序不往下运行,它会阻塞你当前的线程为,除非你程序是多线程的程序,否则只有等待模态对话框被确认
3、如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。
但是在WIN32 SDK的情况下只能使用MESSAGEBOX。