· 消息隊列。Windows能夠為所有的應用程序維護壹個消息隊列。應用程序必須從消息隊列中獲取
消息,然後分派給某個窗口。
· 消息循環。通過這個循環機制應用程序從消息隊列中檢索消息,再把它分派給適當的窗口,然
後繼續從消息隊列中檢索下壹條消息,再分派給適當的窗口,依次進行。
· 窗口過程。每個窗口都有壹個窗口過程來接收傳遞給窗口的消息,它的任務就是獲取消息然後
響應它。窗口過程是壹個回調函數;處理了壹個消息後,它通常要返回壹個值給Windows。
註意回調函數是程序中的壹種函數,它是由Windows或外部模塊調用的。
壹個消息從產生到被壹個窗口響應,其中有5個步驟:
1) 系統中發生了某個事件。
2) Windows把這個事件翻譯為消息,然後把它放到消息隊列中。
3) 應用程序從消息隊列中接收到這個消息,把它存放在TMsg記錄中。
4) 應用程序把消息傳遞給壹個適當的窗口的窗口過程。
5) 窗口過程響應這個消息並進行處理。
步驟3和4構成了應用程序的消息循環。消息循環往往是Windows應用程序的核心,因為消息循環
使壹個應用程序能夠響應外部的事件。消息循環的任務就是從消息隊列中檢索消息,然後把消息傳遞給適當的窗口。如果消息隊列中沒有消息,Windows就允許其他應用程序處理它們的消息。
Windows操作系統最大的特點就是其圖形化的操作界面,其圖形化界面是建立在其消息處理機制這個基礎之上的。如果不理解Windows消息處理機制,肯定無法深入的理解Windows編程。可惜很多程序員對Windows消息只是略有所聞,對其使用知之甚少,更不了解其內部實現原理,本文試著壹步壹步向大家披露我理解的Windows消息機制。可以說,掌握了這壹部分知識,就是掌握了Windows編程中的神兵利器,靈活運用它,將會極大的提高我們的編程能力。