MessageBox和AfxMessageBox

来源:互联网 发布:对外贸易数据网 编辑:程序博客网 时间:2024/05/16 19:20
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,   这两个函数都没有提供控制其出现位置的参数,所以,不能控制其出现的位置。
0 0
原创粉丝点击