MessageBox和AfxMessageBox
2016-10-20 19:19
225 查看
1. MessageBox 是Windows系统库 user32.dll 的一个导出函数,用于显示一个提示消息对话框,其原型定义如下 : int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style ); 可以看到有四个参数,第一个是消息框所有者窗口句柄,可以是NULL,第二个是 消息框的文本内容,第三个是消息框标题,第四个参数是消息框样式(按钮和图标)。 2. CWnd类对MessageBox进行了封装,对其第一个参数传递了CWnd类的成员变量 m_hWnd, 因此,调用CWnd类的成员函数MessageBox时,不能使用第一个参数,并且,最后两个参数也有默认值。 3. AfxMessageBox 是应用程序框架函数,是一个全局的函数,其内部实现也是使用了MessageBox。 它有两次重载,如下: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 是消息框的内容;nType 与MessageBox中相同;nIDHelp 是帮助上下文ID,如果是0则使用默认的帮助上下文。 nIDPrompt 是一个资源中的字符串表中的字符串资源ID,可以使用一个字符串资源作为消息框的内容。 因为 MessageBox 是标准调用的DLL导出函数,所以可以在C代码中使用,而 AfxMessageBox 则只能在C++代码中使用,一般都是在MFC程序中使用AfxMessageBox。 AfxMessageBox 内部处理了MessageBox的参数,然后调用 MessageBox来实现。而实际上MessageBox只是一个宏,真正的函数是MessageBoxA和MessageBoxW, 这两个函数都没有提供控制其出现位置的参数,所以,不能控制其出现的位置。
相关文章推荐
- AfxMessageBox与MessageBox的区别
- AfxMessageBox和Messagebox的区别
- AfxMessageBox()和MessageBox()
- AfxMessageBox与MessageBox的区别
- 关于为什么在线程函数中使用afxMessageBox或者messageBox都不能弹出?
- 自定义扩展MessageBox(Formatted MessageBox/AfxMessageBox)
- 【转】AfxMessageBox、MessageBox、::MessageBox的区别
- AfxMessageBox和MessageBox区别
- AfxMessageBox和MessageBox区别
- AfxMessageBox和MessageBox差别
- MFC之MessageBox、AfxMessageBox用法
- AfxMessageBox和Messagebox的区别
- AfxMessageBox()与MessageBox()的区别
- AfxMessageBox()与MessageBox()的区别
- AfxMessageBox和MessageBox差别
- AfxMessageBox和MessageBox区别
- VC中MessageBox与AfxMessageBox用法与区别
- 《MessageBox与AfxMessageBox用法与区别》
- AfxMessageBox()与MessageBox()
- VC中MessageBox与AfxMessageBox用法与区别