日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows编程初步(一)

發布時間:2023/12/2 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows编程初步(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一節:安裝幫助文檔

使用C語言進行Windows開發,必然使用到WindowsSDK。Windows SDK指Windows開發人員工具包,是為使用C語言開發Windows程序所提供的工具集。里面提供的工具異常全面豐富,很少有人能全部了解,在開發Windows應用程序時,應同時使用MSDN,即俗稱Windows開發幫助。安裝好MSDN后,在程序設計過程中,不記得函數調用方式時,可以在VC中將光標移動到函數名上按下F1幫助鍵,即可以獲得這個函數的所有信息,非常方便;在遇到難解的編譯出錯信息時,也可在輸出欄出錯的行上按下F1獲得詳細的錯誤說明。由于MSDN有1.2G,無需全部安裝,在課程設計階段,只需要安裝全文索引、VC++文檔和Platform SDK即可,在開始安裝時可選擇自定義安裝。

圖1 MSDN的自定義安裝

圖2 選擇索引,VC,下面還有SDK

第二節:簡單的Windows程序(一)

純粹的Windows編程代碼量較大,但是不少代碼系統已經幫我們生成,所以初學者快速掌握windows編程的方法就是利用現成的框架,找到需要修改的地方,然后實現設計意圖。
類似C語言的學習,Windows編程也應為課程設計建立一個工作空間:

圖 3 創建空白工作區

然后向空白工作區中添加我們第一個Windows程序:

圖 4 第一步,創建合適的應用程序

圖 5 選擇典型的HelloWorld程序

直接按下Finish可創建第一個程序。不用去看具體代碼,直接編譯執行,選擇調試執行,可以看到這個程序執行的結果。(注:程序開發階段應使用調試執行觀察程序行為)

圖 6 框架程序

程序運行的結果是一個窗口,可以放大縮小或者調整大小,還具有菜單。這些內容在將來都可以由程序員來自己定義。
打開代碼WinStep1.cpp,首先觀察到得就是一個特殊的main函數——WinMain

程序片段 1 主函數和消息循環

類似C語言下的main, WinMain是程序的入口,具有固定的格式。函數前段有兩個LoadString函數調用。其意義是從資源中加載一些字符串。所謂資源,初步的理解可以是這樣的:程序員打算發布(編寫程序后銷售)的應用程序中有一些字符串常量,對話框表現等素材,隨著發布地點不同(例如在美國銷售和中國銷售),所使用的語言提示,對話框布局等均有所不同,但是程序核心的邏輯是不變的。將這些素材統一提取出來專門放在叫做資源文件的文件中,這樣若是變更發布地點,只需要將這些資源文件交給專門的翻譯和美工去完成,不必涉及到復雜的程序邏輯。這樣將程序邏輯與資源分開,使應用程序適應性和靈活性更強了。

第一個LoadString是加載窗口的標題。在圖4中就是WinStep1。第二個是窗口的類別名稱。關于窗口類,因為我們實際上一行代碼都沒有改變,所以WinStep實現的功能很有限,但是在將來完善后會逐漸變得功能強大些,從代碼而言,是同一個工程的源代碼不停地修改,從系統角度來看,也許多個可執行的程序都在磁盤上,為了區分這些程序,可以分類叫做"張三的窗口V1.0",“張三的窗口V1.1”,為了區分不同目的的程序,還可以叫做“斗地主V2.1 by 張三”和“電腦播音員V1.1 by李四”這樣的名字。這些由程序員定義的,用來區別計算機中不同窗口目的的字符串,就是窗口類。嘗試用下面代碼替換掉這兩行程序:

程序片段 2 小小地修改

初學者對WinMain中其他代碼先不要動。下面觀察第二個重要函數WndProc。

WndProc是消息處理函數,當用戶動動鼠標或者按下鍵盤,或者切換窗口等任何由Windows系統預定義的動作,或者是定時器,系統電力不足,有聊天網絡消息到來等由程序定義的事件,都會調用這個函數??梢韵胂筮@個函數有多么地“忙”。所以任何寫在這個函數里的代碼都要求非常地“快”。一旦這里某段代碼“慢”了,甚至“死循環”了,那么后來的消息就會堆積起來無法處理,從用戶角度看,就是這個程序停止響應了。為明確起見,將程序中的WndProc改名為MainWndProc,意即處理主窗口的消息的程序。在修改時,請注意原始代碼中有三處WndProc都需要修改——文件最前的位置函數聲明,在MyRegisterClass函數調用,以及WndProc函數定義。

前文提到,WndProc主要功能就是處理各種各樣的消息,顯然考慮這么多大量的消息對程序員是個沉重的負擔,幸好Windows本身已經提供了默認的消息處理代碼,程序員只需要處理好自己關心的消息就可以了。下面是消息處理函數的模板。

程序片段3 消息處理函數

觀察這個MainWndProc函數,hWnd參數表示處理這個消息的窗口,Message表示處理什么類型的消息,wParam和lParam是消息的兩個參數,不同的消息,其參數含義不同。如果程序員想要處理某個消息,則一定要去翻閱對應的消息參數的含義。

在程序片段中,程序員處理3個消息,一個是WM_COMMAND,這個消息來自于用戶選擇某項菜單或者觸發了某個按鈕。一個是WM_PAINT,這個消息表示用戶在窗口里顯示些什么。過去學習程序設計都是用printf函數輸出的,但是在窗口環境下,有更強大的輸出功能——你可以指定輸出位置,顏色,甚至可以輸出各種圖形,真正做到圖文并茂。繪圖消息處理一定是由BeginPaint開始并由EndPaint結束的。最后是WM_DESTORY。表示將要關閉這個窗口,程序可以在這里增加一些收尾工作。當然也可以什么都不做,只留那個ostQuitMessage函數在那里。

注意到這個大switch~case中,最后的default分句,DefWindowProc調用表示其余剩下的所有消息均由系統默認處理。

我們從菜單處理項開始進入windows編程。

程序片段4 處理菜單入口

總結

以上是生活随笔為你收集整理的Windows编程初步(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。