Windows應用程式的訊息處理機制
(1)作業系統接收到應用程式的視窗訊息,將訊息投遞到該應用程式的訊息佇列中。
(2)應用程式在訊息迴圈中呼叫GetMessage函式從訊息佇列中取出一條一條的訊息。
取出訊息後,應用程式可以對訊息進行一些預處理,例如,放棄對某些訊息的響應,或者呼叫TranslateMessage產生新的訊息。
(3)應用程式呼叫DispatchMessage,將訊息回傳給作業系統。
訊息是由MSG結構體物件來表示的,其中就包含了接收訊息的視窗的控制程式碼。因此,DispatchMessage函式總能進行正確的傳遞。
(4)系統利用WNDCLASS結構體的lpfnWndProc成員儲存的視窗過程函式的指標呼叫視窗過程,對訊息進行處理(“即系統給應用程式傳送了訊息”)。
流程圖如下:
相關文章
- Android應用程式訊息處理機制Android
- Android中的非同步訊息處理機制Android非同步
- 原始碼分析:Android訊息處理機制原始碼Android
- Cloud Foundry架構和訊息處理機制Cloud架構
- Handler訊息處理機制原始碼解析 上原始碼
- 簡析Windows訊息機制Windows
- 深入理解Android非同步訊息處理機制Android非同步
- 深入理解windows 訊息機制Windows
- React應用裡Invalid hook call錯誤訊息的處理ReactHook
- 詳解 Handler 訊息處理機制(附自整理超全 Q&A)
- 回轉壽司你一定吃過!——Android訊息機制(處理)Android
- 理解 Android 訊息機制Android
- Android訊息機制HandlerAndroid
- android訊息機制—HandlerAndroid
- Android 之訊息機制Android
- 訊息機制篇——初識訊息與訊息佇列佇列
- 【RocketMQ】訊息的刷盤機制MQ
- Android的Handler訊息機制 解析Android
- redis的事件處理機制Redis事件
- MPLS RSVP訊息處理——VecloudCloud
- [Unity 程式碼寫法整理]訊息機制(三)Unity
- RabbitMQ訊息佇列(九):Publisher的訊息確認機制MQ佇列
- 如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180
- Rabbitmq可靠訊息投遞,訊息確認機制MQ
- Android訊息機制Handler用法Android
- flutter 訊息傳遞機制Flutter
- RabbitMQ 訊息確認機制MQ
- Kafka 訊息儲存機制Kafka
- Android非同步訊息機制Android非同步
- 重拾 ObjC 訊息機制OBJ
- Handler訊息傳遞機制
- java中的垃圾處理機制Java
- SpringMVC異常的處理機制SpringMVC
- java異常的處理機制Java
- Java 的異常處理機制Java
- 異常處理機制
- 什麼是IO多路複用?Nginx的處理機制Nginx
- KafkaConsumer對於事務訊息的處理Kafka
- .net core 訊息流處理流程