1-1学习MFC之消息对话框
来源:互联网 发布:淘宝618活动 编辑:程序博客网 时间:2024/06/03 01:26
最近在学习MFC,练习环境为经典的VC++6.0
Windows开发中经常用到消息对话框,所以先拿这个练练说。但MFC中的消息对话框,学问还挺多。
先一步步建工程。工程名就是MessageBox。
简单起见,这里使用基本对话框类型,并使用一些默认设置,所以可以直接点“完成”。
CN情怀,把它默认提供的一些东西删除。这时我们的程序编译并运行是可以的,只是我们没有在上面添加任何控件和代码,自然这个程序也毫无用处。
在窗口中加入一个“按钮”(BUTTON),右击选择属性,将其标题改为“CWnd::messageBox”。(标题-caption,只影响按钮的显示,不影响程序运行。你们可以改为自己喜欢的文字)。
双击这个按钮,弹出“添加成员函数”的对话框。点击“OK”,可跳转掉代码编辑页面。
在CMessageBoxDlg::OnButton1()函数中添加这么一句话:
CWnd::MessageBox("这是一个CWnd::MessageBox","标题",MB_OK);
编译、链接和运行,点击按钮,显示如下:
同样的,在对话框中加入另外一个Button,标题为API::MessageBox。
为这个Button添加成员函数,在函数中输入:
::MessageBox(0,"这是一个API::MessageBox","API",MB_OK);
同样的,我们再次添加一个Button,标题改为AfxMessageBox,添加函数,函数中加入语句:
AfxMessageBox("AfxMessageBox", MB_OK);
整个VC工程压缩文件夹:http://pan.baidu.com/s/1nt4yURv
关于这三个MessageBox的区别和联系。
MessageBox是标准的win32API函数,AfxMessageBox是MFC中的全局函数。同时,MFC对MessageBox进行了封装,使它成了CWnd的一个成员函数。
标准API中,MessageBox带四个参数。
int MessageBox(
HWND hWnd, // handle ofowner window
LPCTSTR lpText, // address oftext in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType // style ofmessage box
);
MFC中MessageBox的定义:
CWnd::MessageBox
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption =NULL,
UINT nType = MB_OK
);
可以看出,它是CWnd的一个成员函数,少了第一个参数,第三、四个参数有了默认值。
AfxMessageBox的函数原型(两个重载函数
int AfxMessageBox( LPCTSTR lpszText, UINTnType = MB_OK, UINT nIDHelp = 0 );
int AFXAPI AfxMessageBox( UINT nIDPrompt, UINTnType = MB_OK, UINT nIDHelp = (UINT) –1 );
MessageBox中的uType和AfxMessageBox中的nType都表示对话框的按钮风格和图标样式。
MessageBox中的按钮风格
按钮参数
含义
MB_OK
默认值。有一个确认按钮在里面。
MB_YESNO
有是和否在里面。
MB_ABORTRETRYIGNORE
有Abort(放弃),Retry(重试)和Ignore(跳过)
MB_YESNOCANCEL
消息框含有三个按钮:Yes,No和Cancel
MB_RETRYCANCEL
有Retry(重试)和Cancel(取消)
MB_OKCANCEL
消息框含有两个按钮:OK和Cancel
图标样式
参数
含义
MB_ICONEXCLAMATION
一个惊叹号出现在消息框
MB_ICONWARNING
一个惊叹号出现在消息框
MB_ICONINFORMATION
一个圆圈中小写字母i组成的图标出现在消息框
MB_ICONASTERISK
一个圆圈中小写字母i组成的图标出现在消息框
MB_ICONQUESTION
一个问题标记图标出现在消息框
MB_ICONSTOP
一个停止消息图标出现在消息框
MB_ICONERROR
一个停止消息图标出现在消息框
MB_ICONHAND
一个停止消息图标出现在消息框
参考资料:
http://baike.baidu.com/link?url=xg-JiK6gnz_iF770esl7JkPRBmW17fERRkXVaPvg1iV9ZeL0j8feIlFxc7nF0Mi70hEv1ergwGovyZxxuXtpYq
http://baike.baidu.com/link?url=oyip1Vk8QRzXDeRjuS_TxwRRttxnuixt8oxcIg4LmFY30Px2YOHYQTwDxN4v4sMYqdKNj6wsuLayv0A8q14Ata
http://blog.csdn.net/xhhjin/article/details/6456205
- 1-1学习MFC之消息对话框
- MFC 学习之 对话框作图<1>
- 1-3学习MFC之文件对话框
- 4-1 MFC学习之模式对话框和非模式对话框以及对话框的回调
- MFC笔记1:对话框学习
- Mfc 对话框学习笔记(1)
- MFC学习笔记3_消息对话框
- MFC学习笔记之-对话框
- MFC学习笔记之对话框
- VS2010/MFC编程入门之十五(对话框:消息对话框)
- VS2010/MFC编程入门之十五(对话框:消息对话框)
- VS2010/MFC编程入门之十六(对话框:消息对话框)
- VS2013/MFC编程入门之十五(对话框:消息对话框)
- C++ MFC / VS2013 之十四 (对话框:消息对话框)
- MFC基础学习(1)---对话框的创建
- MFC学习笔记(1)--对话框
- MFC—消息对话框
- MFC控件篇之对话框中的消息与数据
- apache配置
- 时间格式小全
- “合杰”X8无线服装盘点机
- 复合主键
- java递归实现全排列
- 1-1学习MFC之消息对话框
- 技术阅读
- Live555源码在vs2010/vs2013中的编译
- Android FM模块学习之四源码分析(七)
- android 打包自定义JAR包
- SQLQuery 查询Oracle char类型返回一个字符有关问题
- linux vi保存退出命令 (如何退出vi)
- android gridview网路得到图片大小不统一出现的边框空白太大等问题
- 关于js动态添加的表单元素,提交表单后接收不到的问题