MFC學習(四) 訊息機制
1 訊息機制的要點:
訊息佇列:先進先出
訊息迴圈:通過迴圈while,不斷的從訊息佇列中取得隊首訊息,並分發訊息。
訊息處理:根據不同的訊息型別做不同的處理
事件:事件響應函式
2 訊息機制
_tWinMain
{
// 註冊視窗類
if(!AppRegisterClass(hInstance)) // hInstance 是應用程式控制程式碼,把這個和winproc註冊上。
{
return (FALSE);
}
// 初始化應用程式視窗
if (!InitInstance (hInstance, nCmdShow)) // 註冊之後開始初始化應用視窗(createWindow得到g_hWnd ;ShowWindow(); UpdateWIndow)_)
{
return FALSE;
}
// 訊息迴圈
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) //定義訊息處理函式
wndProc會根據message型別呼叫對應的事件響應函式。
onDraw () // 每次重新整理的時候都會重新繪製。
對於每一個正在執行的Windows應用程式,系統為其建立一個"訊息佇列",也就是應用程式佇列
DispatchMessage會將訊息傳遞給視窗函式,也就是WndProce函式。
WndProc是一個回撥函式,在註冊視窗時通過wcex.lpfnWndProc將其傳遞給了OS,所以DispatchMessage分發訊息後,OS會呼叫
Wndproc去處理。
訊息的定義和型別:
windows訊息都以WM_為字首,WM_PAINT.
typedef struct tagMsg
{
HWND hwnd; //接受該訊息的視窗控制程式碼
UINT message; //訊息常量識別符號,也就是我們通常所說的訊息號
WPARAM wParam; //32位訊息的特定附加資訊,確切含義依賴於訊息值
LPARAM lParam; //32位訊息的特定附加資訊,確切含義依賴於訊息值
DWORD time; //訊息建立時的時間
POINT pt; //訊息建立時的滑鼠/游標在螢幕座標系中的位置
}MSG;
訊息主要有3種型別:
A: 命令訊息:
B: 標準視窗訊息:
C: Notification:
佇列訊息和非佇列訊息: 按照是否需要放入隊裡
POSMessage 與 SendMessage:
POSMessage:傳送到訊息對列
SendMessage:非對列訊息。直接傳送視窗,等待執行結束。
相關文章
- MFC訊息對映
- MFC六大核心機制之五、六:訊息對映和命令傳遞
- 學習 Android Handler 訊息機制需要注意這些問題!Android
- 理解 Android 訊息機制Android
- Android訊息機制HandlerAndroid
- android訊息機制—HandlerAndroid
- Android 之訊息機制Android
- 訊息機制篇——初識訊息與訊息佇列佇列
- MFC DLL如何響應PreTranslateMessage訊息
- Rabbitmq可靠訊息投遞,訊息確認機制MQ
- Android訊息機制Handler用法Android
- flutter 訊息傳遞機制Flutter
- RabbitMQ 訊息確認機制MQ
- 簡析Windows訊息機制Windows
- Kafka 訊息儲存機制Kafka
- Android非同步訊息機制Android非同步
- 重拾 ObjC 訊息機制OBJ
- Handler訊息傳遞機制
- MFC學習(五)
- 深入理解windows 訊息機制Windows
- 【RocketMQ】訊息的刷盤機制MQ
- Android的Handler訊息機制 解析Android
- Android Handler 訊息機制詳述Android
- 深入理解Android訊息機制Android
- RabbitMQ訊息佇列(九):Publisher的訊息確認機制MQ佇列
- OCX 控制元件主動傳送訊息給 MFC 視窗訊息控制元件
- Python 併發程式設計(四):詳解 Python 執行緒訊息通訊機制Python程式設計執行緒
- 深入淺出 Runtime(三):訊息機制
- Android Handler MessageQueue Looper 訊息機制原理AndroidOOP
- Android 訊息機制:Handler、MessageQueue 和 LooperAndroidOOP
- iOS 訊息轉發機制Demo解析iOS
- Handler訊息機制完全解析Handler解析
- 全面剖析Android訊息機制原始碼Android原始碼
- Android 訊息機制詳解(Android P)Android
- 深入java虛擬機器學習–類的載入機制(四)Java虛擬機機器學習
- Android-Handler訊息機制實現原理Android
- Android應用程式訊息處理機制Android
- 由外到內——剖析Android訊息機制Android