麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Windows > 正文

簡述Windows消息傳遞機制

2020-02-24 14:29:34
字體:
來源:轉載
供稿:網友

Windows是消息驅動系統,Windows消息提供應用程序之間以及應用程序和Windows系統之間的通信方式,應用程序希望實現功能來進行消息觸發,并由消息的響應和處理完成,下面就跟著武林技術頻道小編來看看本文的介紹吧!
消息循環:

當初始化完成后,WinMain主函數就進入消息循環:

While(GetMessage(&msg,...)){TranslateMessage(&msg);//轉換鍵盤消息DispatchMessage(&msg);//分派消息}

窗口過程:

LRESULT CALLBACK WndProc(...){...switch( msg ){case 1:...case 2:...Default:...}return 0;}

下面以兩個問題的方式進行具體概要。
?
問題1:消息有哪幾種分類方法?
(1) 隊列消息和非隊列消息
隊列消息會被送到系統消息隊列,然后到線程消息隊列。Windows維護一個系統消息隊列,每個GUI線程也有一個線程消息隊列。其中包括鍵盤鼠標消息,WM_PAINT、WM_TIMER、WM_QUIT。
這些隊列消息以外的消息絕大多數都是非隊列消息。

此處注意:消息隊列中放置的消息是以MSG結構的形式存在,MSG包括:窗口句柄、消息標識、消息的兩個參數(WPARAM和LPARAM)、消息發送(POST)的時間以及鼠標的位置。此外,可以利用::GetMessage函數和::PeekMessage函數來保存獲得的消息信息。
非隊列消息直接送給目的窗口過程。

(2) 系統消息和應用程序消息
系統消息ID范圍 0X8000~0XBFFF
應用程序消ID范圍0XC000~0XFFFF
為了應用程序消息的ID唯一性,可以使用::RegisterWindowMessage來得到特定的ID。?

問題2:消息是如何進行傳遞、接收、處理的?
Windows應用程序的輸入由Windows系統以消息的形式發送給應用程序的窗口,這些窗口通過窗口過程來接收和處理消息,然后把控制返還給Windows。

此處注意:非隊列消息直接送給目的窗口的窗口過程,隊列消息由::DispatchMessage派發給目的窗口的窗口過程。窗口過程被調用時接收四個參數:窗口句柄、消息標識、兩個32位的消息參數。在窗口過程里,用switch/case分支處理語句來識別和處理消息。

每個GDI應用程序在主窗口創建之后,都會進入消息循環,接受用戶輸入、解釋和處理消息。消息循環從消息隊列中得到消息,如果不是快捷鍵消息或對話框消息,就進行消息轉換和派發,讓目的窗口的窗口過程來處理。當得到消息WM_QUIT,或者::GetMessage出錯時,退出消息循環。

以上就是武林技術頻道給大家介紹的簡述Windows消息傳遞機制,看完都明白了吧,希望以上內容對諸多初學者有所幫助,更多必備知識請關注本站進行學習。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻豆视频在线免费观看 | 国产欧美在线观看不卡一 | 毛片免费大全短视频 | av影院在线 | 成人精品免费看 | 国产在线导航 | www.精品久久| 亚洲无马在线观看 | 91精品国产一区二区三区四区在线 | 日本搞逼视频 | 久久久久久久久浪潮精品 | 欧美黑人伦理 | 伊人在线视频 | 中日韩免费视频 | 日本韩国欧美一级片 | 亚洲一区 国产精品 | 97久久曰曰久久久 | 黄网站进入 | 久久国产精品久久久久久电车 | 男女亲热网站 | 日本欧美国产 | 高清成人在线 | 午夜视频在线免费播放 | 黄色特级毛片 | 久久探花 | 日韩一级片一区二区三区 | 99re热精品视频 | 欧美一级在线免费 | 国产精品美女一区二区 | 久久视频精品 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | 精品亚洲夜色av98在线观看 | 成人黄色短视频在线观看 | www国产成人免费观看视频,深夜成人网 | 国产精品午夜一区 | 久久国产精品二国产精品中国洋人 | 精品国产一区二区三区久久久蜜 | 成人羞羞网站入口 | 久久久久久久久久久久久国产精品 | 久久久久久久久久久久久国产精品 | 久久久久久久一区二区 |