messagebox 全部使用_「一」Windows API 零门槛编程指南——MessageBox
本篇作為Windows API 系列文章的第一篇,將簡要的講解一下什么是Windows API,Windows API能做些什么,并且盡可能講解一些新出現的專有名詞;本系列博文幾乎沒有難啃的“專業術語”,盡量讓讀者能夠看明白文章所述內容,是本系列博文的核心宗旨之一。
讀本系列博文的讀者必須具備以下的知識儲備:
- C/C++語言基礎語法及了解面向對象概念
以上列出的這一個點是最核心的知識儲備,因為本系列博文將會使用C/C++語言編寫的程序作為示例演示Windows API 的效果;使用C/C++ 語言編寫Windows應用程序我個人認為是最佳的一種方式,在性能和發掘Windows特性上,我個人認為是首選!
在此如果是編程新手,可以聽一下這一段建議:當你學習第一門語言后,例如C語言,發現自己并不能做出什么東西,這個時候千萬別產生挫敗感!并不是你笨,學了C語言就不會做東西,在相同的知識寬度面前大家都一樣,這個時候就需要去涉及其它擴展性知識,如果你是想做Windows程序的開發,那么就可能需要了解Windows API,擴寬你的知識寬度,當擁有了能夠用做出產品的知識后,你的產品就會水到渠成了!
Windows API是什么?
首先從API開始理解,API全稱為 Application Programming Interface ;Application Programming 可譯為 應用程序,其中的 interface 為接口的意思。那么中文名即為 應用程序接口。
那么什么是應用程序接口呢?我們舉個例子說明一下情況;應用程序接口可以比作為快遞的領取,你不需要知道快遞從發送到你收到之間發生的過程,你只需要在快遞到達的時候去領取即可;此時領取快遞的地點就相當于一個接口,你通過這個接口獲取你想要的信息或者是資源,這個接口也只會返回信息或者資源,并不會得到額外的東西。這就是一個接口的定義,屏蔽了其中復雜的過程,你是用這個接口,那么就直接獲取到相應的信息。
知道了接口的作用,那么Windows API——Windows 應用程序接口就比較容易理解了,Windows是Windows系統,也是一個應用程序,Windows 提供了不同的服務,這些服務通過一些特定的方式進行調用、使用;這些服務可能是 開啟一個窗口、打開一個應用程序、通過一個方法設置系統的休眠時間等;這些不同的服務,做成了接口的方式使用,那么Windows API 也就知道是干什么用的了。
知道了Windows API 為調用Windows 服務的接口,那么現在嘗試一下使用Windows API 創建幾個對話框。Windows API 可以查看 Windows API 文檔;在Windows API 文檔中,查找 MessageBox 即可找到 MessageBox 方法的具體使用方法;通過微軟官方API文檔參數說明得知 MessageBox 的功能簡介如下:
“顯示一個模式對話框,該對話框包含系統圖標,一組按鈕以及特定于應用程序的簡短消息,例如狀態或錯誤信息。該消息框返回一個整數值,該整數值指示用戶單擊了哪個按鈕。”
從功能簡介上得知,對話框可以包含系統圖標、特定的短消息、錯誤消息;消息框返回一個整數值,判斷用戶點擊的按鈕,以便于開發者進行下一步操作。
查看語法:
int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);參數說明:
hWnd類型為 HWND (HWND類型為句柄類型,句柄:句柄為你需要操作的對象的指向、或說為指針,它就像一個鍋的手柄一樣,你通過手柄就可以拿起來這個鍋,它的英文為HANDLE;在本節中,我們并不需要指向什么對象,只需要給一個NULL就ok,在此并不會過多解釋句柄。)
hWnd 參數的簡單說明為:要創建的消息框的所有者窗口的句柄。如果此參數為空,則消息框沒有所有者窗口。
通過參數的簡單說明,那么我們可以得到信息:消息窗口可以指定一個窗口的所有者,也可以用面向對象的知識點來理解,那就是指定一個對象為父類,父窗口,如果參數為NULL,那么就表示不指定父窗口。
lpText
類型為 LPCTSTR :是一個指向字符串的指針,參考百科說明,還是說的比較好的:LPCTSTR就表示一個指向const對象的指針。
lpText參數的簡單說明為:要顯示的消息文本,如果字符串由多行組成,則可以在每行之間使用回車和 / 或換行符分隔行。
通過參數的簡單說明,那么我們可以得到信息:LPCTSTR 為需要顯示的消息文本。
lpCaption類型:與lpText一致。
lpCaption對話框標題。如果此參數為空,則默認標題為Error。
通過參數的簡單說明,那么我們可以得到信息:lpCaption 為需要顯示的消息文本。基本使用規則跟 lpText 類似。
uType
類型為:UINT 無符號整型對話框的內容和行為。此參數可以是來自以下標志組的標志的組合。
其實對于 uType 這個參數信息點可能并不算多,官方在其中有做補充:
要指示消息框中顯示的按鈕,請指定以下值之一。以上的特定標志組按鈕并不是全部,更多請查看微軟官方文檔 MessageBox說明
在文檔中,uType 的參數做出了補充:
通過以上信息,似乎明白了在使用Windows軟件中彈出的對話框的圖標怎么設置了。
返回值如下當這個窗口被點擊,或者關閉時,將會有一個返回值。官方解釋如下:
如果一個消息框有一個取消按鈕,則該函數返回IDCANCEL如果或者ESC鍵被按下或值取消按鈕被選擇。如果消息框沒有“取消”按鈕,則按ESC無效。 如果函數失敗,則返回值為零。
當函數成功調用,返回如下值:
那么我們現在就寫個例子吧,嘗試一下一個對話框的生成!代碼如下:
#include int main() { MessageBox (NULL, "Hello, CSDN!2020!", "Hi", MB_ICONSTOP); return 0 ; }從以上代碼中,我們引入了 windows.h 頭文件;有些看了文檔同學可能知道,在微軟文檔中,MessageBox 是實現在 winuser.h 頭文件中,為什么使用Windows.h 頭文件呢?
因為 windows.h 頭文件包含了 winuser.h,所以直接使用 winuser.h 就可以了。在入口函數內,第一行我們指定了父窗體為空NULL,要顯示的文字是 “Hello, CSDN!2020!” ,標題是 “Hi”,在組合樣式中使用的樣式是補充的樣式 MB_ICONSTOP,應該為下圖示樣:
我們編譯后運行程序查看效果:
程序按照正確的方式運行了,不過這個叉不是很好,我們換一個 MB_ICONASTERISK:
#include int main() { MessageBox (NULL, "Hello, CSDN!2020!", "Hi", MB_ICONASTERISK); return 0 ; }結果如下:
總結
以上是生活随笔為你收集整理的messagebox 全部使用_「一」Windows API 零门槛编程指南——MessageBox的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java dump分析工具_Java虚拟
- 下一篇: python逐个读取文件_在Python