古詩詞大全網 - 成語用法 - VC中怎麽定位MessageBox出現的位置

VC中怎麽定位MessageBox出現的位置

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,第二個是 消息框的文本內容,第三個是消息框標題,第四個參數是消息框樣式(按鈕和圖標)。CWnd類對MessageBox進行了封裝,對其第壹個參數傳遞了CWnd類的成員變量 m_hWnd,因此,調用CWnd類的成員函數MessageBox時,不能使用第壹個參數,並且,最後兩個參數也有默認值。 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,這兩個函數都沒有提供控制其出現位置的參數,所以,不能控制其出現的位置。