showwindow 窗口不弹出_C语言Windows程序设计 - 【第一个属于自己的窗口】!
?創(chuàng)建屬于自己的窗口
==================
創(chuàng)建窗口前的準備
在創(chuàng)建窗口前我們先來熟悉幾個名詞, 這些名詞現(xiàn)在可以暫時不去透徹的進行理解, 只需要印象中知道有這么回事就行。
1>. 窗口
"窗口"這個我們都已經(jīng)十分熟悉了, 在Windows中, 一個應用程序窗口上一般會在標題欄上顯示程序的名稱, 緊挨著標題欄的菜單欄, 或許還會有狀態(tài)欄、滾動條等其他"裝飾品"。
2>. 控件
在一些應用程序中, 我們經(jīng)常可以在程序的界面上(窗口)看到一些按鈕(Push Button)、文本框(Text Box)、列表框(List Box)、滾動條(Scroll Bar)等, 這些對象通常被稱為控件, 在 Windows程序設計 中, 還被稱為"子窗口"、"控件窗口"或"子窗口控件"。
3>. 窗口類
在建立一個窗口前, 我們必須先注冊一個"窗口類"(Windows Class), 接觸過面向?qū)ο蟮呐笥褢摃紫认氲矫嫦驅(qū)ο螽斨械?#34;類", 但是, 這里"窗口類"中的"類"并不是指面向?qū)ο螽斨械哪莻€"類"。
在這里我們可以把"窗口類"理解為一個結(jié)構(gòu)體, 結(jié)構(gòu)體的成員就是窗口的一些屬性, 例如窗口的標題是什么、窗口使用什么樣的小圖標以及窗口的風格之類的屬性, 一個窗口就是一個結(jié)構(gòu)體的對象, 結(jié)構(gòu)體成員的屬性決定著窗口的屬性。
4>. 消息循環(huán)
在Windows程序設計中, 消息循環(huán)是個不得不提的概念, Windows操作系統(tǒng)是以消息驅(qū)動的, 消息隊列是指在一個應用程序運行時, Windows操作系統(tǒng)會為該應用程序建立一個"消息隊列", 這個消息隊列用來存放該程序可能創(chuàng)建的各種窗口的消息, 當用戶對應用程序進行操作時, 例如點擊一個按鈕、調(diào)整下窗口的大小等, 此時Windows會立即把這一消息告訴應用程序, 使應用程序能作出相應的動作。
5>. 窗口的過程函數(shù)
當一個窗口建立之后, 就可以從Windows那里不斷的接收到Windows發(fā)來的消息, 接收到消息后我們就需要一個函數(shù)來處理這些消息, 可以簡單的理解為, 這個用來處理接收到的消息的函數(shù)就稱為窗口過程函數(shù)或者回調(diào)函數(shù)。
下面我們來嘗試著看一個創(chuàng)建一個基本窗口的代碼。
嘗試創(chuàng)建自己的窗口
代碼如下:
--------------------
--------------------
先簡單介紹這段代碼, 在主函數(shù)WinMain中的窗口類對象wndclass我們定義了窗口的相關(guān)屬性, 嘗試注冊窗口類并調(diào)用CreateWindow創(chuàng)建窗口, 創(chuàng)建完成后用ShowWindow讓窗口顯示出來, 我們還使用了個while用來從消息隊列里獲取并分發(fā)消息給程序, 我們還定義了一個過程函數(shù)WndProc用來處理系統(tǒng)發(fā)來的消息。
編譯運行后, 如果沒有錯誤將首先看到一個窗口建立成功與否的對話框, 當創(chuàng)建窗口失敗時彈出一個錯誤對話框并關(guān)閉程序。
當窗口被創(chuàng)建時首先Windows會發(fā)給我們一條創(chuàng)建完成的消息"WM_CREATE", 在我們的消息處理函數(shù)WinProc中有switch-case語句對該消息進行了處理, 就是彈出一個窗口創(chuàng)建完成的對話框。
同樣, 我們還處理了當窗口的客戶區(qū)(內(nèi)容部分)被改變時發(fā)來的的"WM_PAINT"消息進行了處理, 讓"Hello, 這是我創(chuàng)建的窗口!"始終顯示在窗口中心。
"WM_LBUTTONDOWN"消息是當用戶在客戶區(qū)按下鼠標左鍵時發(fā)來的消息, 我們作出相應的動作為彈出一個鼠標左鍵被按下的對話框。
當用戶點擊窗口的關(guān)閉按鈕時, "WM_DESTROY"消息就會發(fā)來, 我們作出的動作是彈出"關(guān)閉程序!"的對話框并且退出程序。
今天的學習先到這里, 明天我們詳細學習下整個創(chuàng)建窗口的代碼。
--------------------
“我是一名從事了10年開發(fā)在退休邊緣垂死掙扎的高齡程序員,最近我花了一些時間整理了一個完整的學習C語言、C++的路線,項目源碼和工具。對于想學習C/C++的小伙伴而言,學習的氛圍和志同道合的伙伴很重要,筆者推薦一個C語言/C++編程愛好者的聚集地C/C++編程項目開發(fā)學習,素材筆記,項目源碼等嗎,還有新鮮出爐的學生成績管理系統(tǒng)等!
歡迎初學和進階中的小伙伴。希望你也能憑自己的努力,成為下一個優(yōu)秀的程序員。工作需要、感興趣、為了入行、轉(zhuǎn)行需要學習C/C++的伙伴可以一起學習!”
關(guān)注我,帶你遨游代碼世界!
下面這些是C/C++能做的 :
服務器開發(fā)工程師、人工智能、云計算工程師、信息安全(白客)、大數(shù)據(jù) 、數(shù)據(jù)平臺、嵌入式工程師、流媒體服務器、數(shù)據(jù)控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務器、分布式系統(tǒng)、游戲輔助等!
最后分享一張C/C++編程學習路線圖給愛學習的小伙伴們
總結(jié)
以上是生活随笔為你收集整理的showwindow 窗口不弹出_C语言Windows程序设计 - 【第一个属于自己的窗口】!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么才是真正的高级程序员
- 下一篇: 计算机检索系统功能,文学多功能计算机自动