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

消息框含有三个按钮:YesNoCancel

MB_RETRYCANCEL

Retry(重试)和Cancel(取消)

MB_OKCANCEL

消息框含有两个按钮:OKCancel


图标样式

参数

含义

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


0 0