在開始具體的VB知識講述之前,吉大的教程為我們講述了windows的訊息處理機制,並用C語言,簡單描述了windows內部的訊息處理機制,分了:註冊視窗類別,建立視窗,顯示訊息迴圈,取出發給視窗,函數執行
說實在的,我有點沒聽明白,後來又查詢了一些資料,大概瞭解了windows訊息處理機制是怎麼一回事。
首先說一下訊息,訊息是任何物件導向系統的關鍵區段,windows環境與應用程式之間的互動,及其與外界的互動就是通過訊息來完成的。Windows發出的一個通知,告訴應用程式某個事情發生了。例如,單擊滑鼠、改變視窗尺寸、按下鍵盤上的一個鍵都會使Windows發送一個訊息給應用程式。訊息本身是作為一個記錄傳遞給應用程式的,這個記錄中包含了訊息的類型以及其他資訊。
Windows的訊息系統是由3個部分組成的:
訊息佇列:Windows能夠為所有登入的應用程式維護一個訊息佇列。應用程式必須從訊息佇列中擷取
訊息,然後指派給某個視窗。
訊息迴圈:通過這個迴圈機制應用程式從訊息佇列中檢索訊息,再把它指派給適當的視窗,然
後繼續從訊息佇列中檢索下一條訊息,再指派給適當的視窗,依次進行。
視窗過程:每個視窗都有一個視窗過程來接收傳遞給視窗的訊息,它的任務就是擷取訊息然後
響應它,視窗過程是一個回呼函數;處理了一個訊息後,它通常要返回一個值給Windows。
注意回呼函數是程式中的一種函數,它是由Windows或外部模組調用的。
一個訊息從產生到被一個視窗響應,其中有5個步驟:
1) 系統中發生了某個事件。
2) Windows把這個事件翻譯為訊息,然後把它放到訊息佇列中。
3) 應用程式從訊息佇列中接收到這個訊息,把它存放在記錄中。
4) 應用程式把訊息傳遞給一個適當的視窗的視窗過程。
5) 視窗過程響應這個訊息並進行處理。
步驟3和4構成了應用程式的訊息迴圈。訊息迴圈往往是Windows應用程式的核心,因為訊息迴圈
使一個應用程式能夠響應外部的事件。訊息迴圈的任務就是從訊息佇列中檢索訊息,然後把訊息傳遞給適當的視窗。如果訊息佇列中沒有訊息,Windows就允許其他應用程式處理它們的訊息。
Windows作業系統最大的特點就是其圖形化的操作介面,其圖形化介面是建立在其訊息處理機制這個基礎之上的。
不理解Windows訊息處理機制,肯定無法深入的理解Windows編程。可惜我對windows的訊息處理機制內部原理還是理解的比較淺,希望隨著學習的深入,能理解得更透徹。
參考:吉大教程百度百科廊坊師範學院-圖書館-中國知網-《在VB中運用Windows訊息機制》