MFC MessageBox使用方法
- 格式:docx
- 大小:78.14 KB
- 文档页数:3
MFC中关闭窗口的几种办法+MFC中MessageBox的用法MFC中关闭窗口的几种办法:退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE);关闭当前窗口用DestroyWindow( );关闭模式对话框用EndDialog(0);MFC中MessageBox的用法消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
1.MessageBox("这是一个最简单的消息框!");2.MessageBox("这是一个有标题的消息框!","标题");3.MessageBox("这是一个确定取消的消息框!","标题", MB_OKCANCEL );4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMA TION );5.MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMA TION|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_ICONW ARNINGi信息MB_ICONASTERISK and MB_ICONINFORMA TION按钮的形式MB_OK 默认MB_OKCANCEL 确定取消MB_YESNO 是否MB_YESNOCANCEL 是否取消返回值IDCANCEL 取消被选IDNO 否被选IDOK 确定被选IDYES 是被选MFC 文本框用法//获得EDITCEdit* pBoxOne;pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);//付值pBoxOne->SetWindowText( _T"FOO" );//取值CString str;pBoxOne->GetWindowText(str);GetDlgItem(IDC_EDIT1)->SetWindowText( _T"FOO" );也可以//取值CString str;GetDlgItem(IDC_EDIT1)->GetWindowText(str);EditControl是在MFC对话框中最频繁的使用的控件之一VC++2005提供EditControl的属性和控件事件操作简单方便1只允许输入数字如果设置EditControl中只能输入数字,在VC6.0中需要编写一个派生类来达到目的,而在VC++2005下只需要在属性对话框中将Number的属性值设为True就可以了.2获取EditControl的内容两种方法第一种,利用MFC应用程序向导生成一个基于对话框的应用程序,从资源视图中选择该Dialog窗体,利用右侧的工具箱,向Dialog内添加一个EditControl项,声明控件变量的类别为Value,变量类型为CString,变量名为m_sEdit_Content. CString m_sEdit_Content;CString s;UpdateData(true);s=m_sEdit_Content.GetString();MessageBox(s,_T("获取编辑框的内容"),MB_OK);s.ReleaseBuffer();这样就取得了编辑框的内容UpdateData(true);这句代码很重要,它的作用是将输入的数据装入EditControl对应的变量m_sEdit_Content中.由于MFC应用程序向导默认是使用Unicode库,所以MessageBox中的字符串需要用_T(),否则会出现const char[]转换LPCTSTR错误,如果不使用Unicode库就不需要_T().第二种方法声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content.代码如下(Unicode)CString s;s.GetBufferSetLength(1024);m_Edit_Content.GetWindowTextW(s.GetBuffer(),s.GetLength()); MessageBox(s,_T("获取文本框的内容"),MB_OK);s.ReleaseBuffer();如果不是Unicode下获取编辑框内容的函数就是GetWindowTextA3将EditControl中的内容转化为整数在限制编辑框只能数字之后,要将字符串转化为整数声明控件变量的类别为Value,变量类型为CString,变量名为m_sEdit_Content. CString s;UpdateData(true);s=m_sEdit_Content.GetString();int n=_tstoi(s);s.ReleaseBuffer();n就是所需要的整数在VC2005下字符串转换成整数需要_tstoi这个函数4限制编辑框的输入长度声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content. 在对话框初始化的地方写m_Edit_Content.SetLimitText(1);编辑框就只能输入一个字符了.。
2、向控件添加Items1) 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。
换行用ctrl+回车。
2) 利用函数AddString() 向Combo Box 控件添加Items,如:m_cbExample.AddString(“StringData1”);m_cbExample.AddString(“StringData2”);m_cbExample.AddString(“StringData3”);3) 也可以调用函数InsertString() 将Item 插入指定位置nIndex,如:m_cbExample.InsertString( nIndex, “StringData” );3、从控件得到选定的Item假设在控件列表中已经选定某项,现在要得MFC ComboBox 使用方法Combo Box (组合框)控件很简单,可以节省空间。
从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。
用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。
下面的例子简要说明如何利用MFC CComboBox Class来操作字符串列表。
1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将Combo Box 控件拖放到上面。
打开Class Wizard,添加控件对应变量,如:CComboBox m_cbExamble;在后面的代码中会不断使用这个变量。
2、向控件添加Items1) 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。
换行用ctrl+回车。
2) 利用函数AddString() 向Combo Box 控件添加Items,如:m_cbExample.AddString(“StringData1”);m_cbExample.AddString(“StringData2”);m_cbExample.AddString(“StringData3”);3) 也可以调用函数InsertString() 将Item 插入指定位置nIndex,如:m_cbExample.InsertString( nIndex, “StringData” );3、从控件得到选定的Item假设在控件列表中已经选定某项,现在要得到被选定项的内容,首先要得到该项的位置,然后得到对应位置的内容。
mfc messagebox函数参数MFC(Microsoft Foundation Classes)是用于开发Windows应用程序的C++库,而MessageBox函数是其中一个用于显示消息框的函数。
下面是MessageBox函数的一般形式和参数的详细介绍:cppint MessageBox( LPCTSTR lpText, LPCTSTR lpCaption = NULL, UINT uType = MB_OK );其中:lpText:消息框中显示的文本。
这是必需的参数。
lpCaption:消息框的标题文本。
这是可选参数,默认为NULL。
uType:消息框的类型,指定消息框的按钮和图标。
这是可选参数,默认为MB_OK。
可能的值包括:MB_OK:显示一个带有“确定”按钮的消息框。
MB_YESNO:显示带有“是”和“否”按钮的消息框。
MB_ICONINFORMATION:显示包含信息图标的消息框。
其他MB_前缀的常量,以及它们的组合,用于设置消息框的其他特性。
函数返回一个整数,表示用户选择的按钮。
具体的返回值可能包括IDOK、IDYES、IDNO等,取决于用户的选择。
示例:cppint result = MessageBox(_T("This is a message."), _T("Message Box"), MB_OK | MB_ICONINFORMATION);此示例将显示一个带有信息图标、标题为"Message Box"的消息框,包含文本"This is a message.",并且只有一个"确定"按钮。
请注意,MFC中还有其他MessageBox的变种,允许更多的定制和控制,具体取决于应用程序的需求。
MFC——ComBox用法大全Combo Box (组合框)控件很简单,可以节省空间。
从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。
用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。
下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。
1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件拖放到上面。
打开 Class Wizard,添加控件对应变量,如:CComboBox m_cbExamble;在后面的代码中会不断使用这个变量。
2、向控件添加 Items1) 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。
换行用ctrl+回车。
2) 利用函数 AddString() 向 Combo Box 控件添加 Items,如:m_cbExample.AddString(“StringData1”);m_cbExample.AddString(“StringData2”);m_cbExample.AddStrin g(“StringData3”);3) 也可以调用函数 InsertString() 将 Item 插入指定位置 nIndex,如:m_cbExample.InsertString( nIndex, “StringData” );3、从控件得到选定的Item假设在控件列表中已经选定某项,现在要得到被选定项的内容,首先要得到该项的位置,然后得到对应位置的内容。
这里会用到两个函数,如:int nIndex = m_cbExample.GetCurSel();CString strCBText;m_cbExample.GetLBText( nIndex, strCBText);这样,得到的内容就保存在 strCBText 中。
若要选取当前内容,可调用函数GetWindowText(strCBText)。
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。
MessageBox的用法MessageBox()功能显示一个消息对话框。
语法MessageBox(title,text{,icon{,button{,default}}})参数title:string类型,指定消息对话框的标题。
text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值。
icon:Icon枚举类型,可选项,指定要在该对话框左侧显示的图标。
button:Button枚举类型,可选项,指定显示在该对话框底部的按钮。
default:数值型,可选项,指定作为缺省按钮的按钮编号,按钮编号自左向右依次计数,缺省值为1,如果该参数指定的编号超过了显示的按钮个数,那么MessageBox()函数将使用缺省值返回值Integer。
函数执行成功时返回用户选择的按钮编号(例如1、2、3等),发生错误时返回-1。
如果任何参数的值为NULL,MessageBox()函数返回NULL。
用法当你的应用程序需要显示一段简短信息(比如显示出错、警告等信息)时,没有必要自己从头创建窗口、安排控件,使用MessageBox()函数既简单又方便。
用户只有响应该窗口后,程序才能继续运行下去。
MessageBox()函数的icon参数指定显示在窗口中的图标,它是枚举类型,可能取值为:取值图标Information! StopSign! Exclamation! Question! None! 无图标其中Information!是Icon参数的缺省值。
Button参数指定在窗口中显示哪些按钮,有效取值为:取值中文Windows 95下显示OK!“确定”按钮OKCancel!“确定”、“取消”按钮YesNo!“是”、“否”按钮YesNoCancel!“是”、“否”、“取消”按钮RetryCancel!“重试”、“取消”按钮AbortRetryIgnore!“终止”、“重试”、“忽略”按钮函数功能该函数创建、显示、和操作一个消息框。
MFC控件使用方法VC2012下MFC程序各控件的常用方法分类:vc控件2013-02-16 16:32 94人阅读评论(0) 收藏举报一下控件的用法全部在VC2012下调试通过,特发文收藏(部分内容来自或参考自网络):Static Text:将ID号改成唯一的一个,如:IDC_XX,然后进一次类向导点确定产生这个ID,之后更改Caption属性:GetDlgItem(IDC_XX)->SetWindowText(L"dsgdhfgdffd");设置字体:CFont *pFont= new CFont;pFont->CreatePointFont(120,_T("华文行楷"));GetDlgItem(IDC_XX)->SetFont(pFont);Edit Control:设置文本:SetDlgItemT ext(IDC_XX,L"iuewurebfdjf");获取所有输入:建立类向导创建一个成员变量(假设是shuru1,shuru2……)类型选value,变量类型任选。
UpdateData(true);GetDlgItem(IDC_XX)->SetWindowText(shuru1);第一句更新所有建立了变量的对话框组件,获取输入的值。
第二句将前面的IDC_XX的静态文本内容改为shuru1输入的内容。
若类型选用control:1.设置只读属性:shuru1.SetReadOnly(true);2.判断edit中光标状态并得到选中内容(richedit同样适用)int nStart,nEnd;CString strTemp;shuru1.GetSel(nStart,nEnd);if(nStart== nEnd){strTemp.Format(_T("光标在%d" ),nStart);AfxMessageBox(strTemp);}else{//得到edit选中的内容shuru1.GetWindowText(strTemp);strTemp= strTemp.Mid(nStart,nEnd-nStart);AfxMessageBox(strTemp);}其中nStart和nEnd分别表示光标的起始和终止位置,从0开始。
【MFC】对话框⾃带滚动条的使⽤对话框⾃带滚动条的使⽤⼀,使⽤对话框窗⼝⾃带的滚动条,在属性页⾯中设置即可,如下⼆,OnInitDialog()函数中,添加如下滚动条初始化语句SCROLLINFO vinfo;vinfo.cbSize =sizeof(vinfo);vinfo.fMask =SIF_ALL;vinfo.nPage =50;//滚动块⾃⾝的长短,通常有如下关系:其长度/滚动条长度(含两个箭头)=nPage/(nMax+2), //另外nPage取值-1时,滚动条会不见了。
vinfo.nMax =600;//滚动条所能滚动的最⼤值vinfo.nMin=0;//滚动条所能滚动的最⼩值vinfo.nTrackPos =0;SetScrollInfo(SB_VERT,&vinfo);//即使上述步骤⼀不做,使⽤此条语句也可以显⽰滚动条三,添加相应的WM_VSCROLL函数void CMy1d0Dlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){// TODO: Add your message handler code here and/or call defaultSCROLLINFO scrollinfo;GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);switch (nSBCode){case SB_BOTTOM: //滑块滚动到最底部ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10); //滚动屏幕scrollinfo.nPos = scrollinfo.nMax; //设定滑块新位置SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); //更新滑块位置break;case SB_TOP: //滑块滚动到最顶部ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10);scrollinfo.nPos = scrollinfo.nMin;SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);break;case SB_LINEUP: //单击上箭头scrollinfo.nPos -= 1;if (scrollinfo.nPos<scrollinfo.nMin){scrollinfo.nPos = scrollinfo.nMin;break;}SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,10);break;case SB_LINEDOWN: //单击下箭头scrollinfo.nPos += 1;if (scrollinfo.nPos>scrollinfo.nMax){scrollinfo.nPos = scrollinfo.nMax;break;}SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,-10);break;case SB_PAGEUP: //单击滑块上⽅空⽩区域scrollinfo.nPos -= 5;if (scrollinfo.nPos<scrollinfo.nMin){scrollinfo.nPos = scrollinfo.nMin;break;}SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,10*5);break;case SB_PAGEDOWN: //单击滑块下⽅空⽩区域scrollinfo.nPos += 5;if (scrollinfo.nPos>scrollinfo.nMax){scrollinfo.nPos = scrollinfo.nMax;break;}SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,-10*5);break;case SB_ENDSCROLL: //⿏标离开滑块,结束滑块拖动// MessageBox("SB_ENDSCROLL");break;case SB_THUMBPOSITION:// ScrollWindow(0,(scrollinfo.nPos-nPos)*10);// scrollinfo.nPos = nPos;// SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break;case SB_THUMBTRACK: //拖动滑块ScrollWindow(0,(scrollinfo.nPos-nPos)*10); scrollinfo.nPos = nPos;SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break;}CDialog::OnVScroll(nSBCode, nPos, pScrollBar); }。
MFC MessageBox的使用方法
1、概要
MessageBox,顾名思义,是用于显示一条信息的对话框(如下图所示),它包含了一个系统图标、一组按钮和需要显示的应用程序消息,如确认信息、错误信息、状态信息等。
当用户单击对话框中的某个按钮后,程序返回相应的标识,如单击Yes按钮,则返回值为IDYES。
2、函数原型
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
参数含义如下:
变量意义
hWnd 信息对话框的父窗口句柄
lpText 欲显示的信息字符串,如果字符串包含多行字符,则在
行与行之间插入回车符和(或)换行符。
lpCaption 信息对话框的标题,如果设置为NULL,默认的标题为
Error
uType 对话框所包含的内容和行为,用于设置对话框的图标,
按钮类型等内容
在MFC编程中,封装在CWnd类中的MessageBox函数更实用,该函数的父窗口句柄一般指向当前窗口,所以参数hWnd是不需要的,函数原型为:
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK
);
3、对话框风格
对话框的风格通过参数nType定义,常用的设置包括两类风格:按钮组合风格和图标风格,另外还有缺省按钮设置和运行模式设置,使用较少,这里不多做介绍。
(1)按钮组合风格
标志含义
MB_OK 一个确定按钮
MB_OKCANCEL 一个确定按钮,一个取消按钮
MB_ABORTRETRYIGNORE 一个异常终止按钮,一个重试按钮,一个忽略
按钮
MB_YESNOCANCEL 一个是按钮,一个否按钮,一个取消按钮
MB_YESNO 一个是按钮,一个否按钮
MB_RETRYCANCEL 一个重试按钮,一个取消按钮
按钮组合风格与函数的返回值是一一对应的,如设置对话框风格为MB_YESNOCANCEL,则返回值为IDYES、IDNO、IDCANCEL三者之一。
返回值常量包括:
标志值含义
IDABORT 3 选择“终止”按钮
IDCANCEL 2 选择“取消”按钮
IDIGNORE 5 选择“忽略”按钮
IDNO 7 选择“否”按钮
IDOK 1 选择“确定”按钮
IDRETRY 4 选择“重试”按钮
(2)图标风格
图标标志
MB_ICONHAND、MB_ICONSTOP、或MB_ICONERROR
MB_ICONQUESTION
MB_ICONEXCLAMATION或MB_ICONWARNING
MB_ICONASTERISK或MB_ICONINFORMATION
4、示例
void CMyWnd::OnDisplayErrorMessage()
{
// This displays a message box with the title "Error"
// and the message "Help, Something went wrong."
// The error icon is displayed in the message box, along with
// an OK button.
MessageBox("Help, Something went wrong.", "Error",
MB_ICONERROR | MB_OK);
}。