程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Win32運用法式(SDK)設計道理詳解

Win32運用法式(SDK)設計道理詳解

編輯:關於C++

Win32運用法式(SDK)設計道理詳解。本站提示廣大學習愛好者:(Win32運用法式(SDK)設計道理詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Win32運用法式(SDK)設計道理詳解正文


普通來講所謂的Win32運用法式開辟,就是在C說話的層面上,直接應用Win32 API(Application Programming Interface:體系開放出來,給法式員應用的接口。)來開辟Windows運用法式或許體系法式。固然如今直接用Win32 API開辟運用法式的人曾經不多了,然則深刻懂得Windows體系法式設計道理,依然是成為Windows開辟高手的必經之路。

所謂的Win32,實際上是一個API標准,與UNIX體系編程接口尺度POSIX是絕對應的。上面是停止直接的WIN32 SDK方法編程的根本思緒或許說是一個框架分析:

一個WINDOWS法式分為法式代碼和UI(User Interface 用戶接口)資本兩年夜部門,兩部門最初以RC編譯法式編譯為一個完全的EXE文件。所謂UI資本是指功效菜單、對話框表面、法式圖標、光標外形等等。這些UI資本的現實內容(二進制代碼)系借助各類對象發生,並以各類擴大名存在,如 .ico .bmp .cur等等。法式員必需在一個所謂的資本描寫檔(.rc )中描寫它們。RC編譯器( RC.EXE )讀取RC 文件的描寫後將一切UI資本文件集中制造出一個.RES 文件,再與法式代碼聯合在一路,這才是一個完全的 Windows可履行文件。

Windows法式將會挪用很多的函數,來完成其必定的功效,這些函數可分為C Runtimes和Windows API兩年夜部門,而API由操作體系自己來供給,包含GDI32.LIB、USER32.LIB、KERNEL32.LIB、COMDLG32.LIB、TH32.LIB等等,前三個為Windows的三年夜模塊所對應的import函數庫。

windows的新聞機制就是“以新聞為基本,以事宜為驅動。”,即Windows法式是依附內部產生的事宜來驅動的,也就是說:法式赓續的期待新聞,內部事宜以新聞的情勢進入體系後放入響應的隊列,然後法式挪用Getmessage API獲得響應的新聞並做出響應的處置。窗口是用來吸收並處置新聞的,每一個窗口都對應一個函數來處置新聞,法式員必需設計這個窗口函數(windows procedure)。

win32運用法式(SDK)的完成重要分為以下步調:

1、WinMain函數
main()函數是C法式的進入點,而WinMain函數是Windows法式的進入點,

2、MSG構造體
界說了一個MSG構造體,是Windows內設的一種數據格局:

3、注冊窗口
RegisterClass()完成注冊窗口類的功效,設定窗口的屬性,包含邊框、色彩、題目、地位等等。

4、創立窗口
CreateWindow函數可以用於創立父窗口、彈出窗口和子窗口,在創立窗口時它可以肯定窗口類、窗口題目、窗口作風、年夜小和初始化地位。

5、顯示窗口
創立窗口後須要應用ShowWindow用於顯示窗口。

6、刷新窗口
挪用UpdateWindow函數來刷新窗口。

7、新聞輪回
初始化任務完成後,WinMain進入所謂的新聞輪回,應用while輪回,赓續的GetMessage,再應用TranslateMessage將新聞轉化,用DispatchMessage將新聞傳遞給窗口函數行止理。

8、獲得新聞
GetMessage功效函數從新聞隊列中獲得新聞,假如新聞隊列中沒有新聞,此功效函數則會一向等得新聞。

9、轉換新聞
將特定的新聞轉換為分歧的新聞,例如新聞隊列中同時有WM_KEYDOWN和WM_KEYUP新聞時,意味著用戶同時按下了鍵盤上的某幾個鍵,此時TranslateMessage將其轉換為一個WM_CHAR新聞。

10、將新聞發送到回調函數
DispatchMessage經由過程USER模塊的協助將新聞送到該窗口的窗口函數去了,然則DispatchMessage並沒有指定函數名,卻可以將新聞傳送曩昔,這是由於新聞產生的時刻,OS曾經依據其時狀況,為它標清楚明了所屬窗口,而窗口所屬的窗口類亦是明白的。

11、WinMain函數前往值

return msg.wParam; //前往構造體變量msg中的wParam的值。

12、WindowProc窗口函數
窗口中的性命關鍵:窗口函數WindowProc。WindowProc是一個callback函數,常應用switch/case方法斷定新聞的品種,以決議處置方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved