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,
这两个函数都没有提供控制其出现位置的参数,所以,不能控制其出现的位置。
MessageBox和AfxMessageBox
最新推荐文章于 2024-05-30 14:49:34 发布