国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

windows消息機制

2019-11-08 03:10:07
字體:
來源:轉載
供稿:網友


1、Windows 是事件驅動的,事件驅動圍繞著消息的產生于處理展開,事件驅動靠消息循環機制實現,,也可以理解為消息是一種報告關于事件發生的通知;2、MFC 是一個廣為使用的編程類庫,對Windows 的消息機制進行了良好的封裝。3、消息(Message)指的就是Windows 操作系統發給應用程序的一個通告[5],它告訴應用程序某個特定的事件發生了(比如單擊了鼠標),最終處理消息的是應用程序的窗口函數,如果程序不負責處理的話系統將會作出默認處理。4、消息是一個結構體,它包含了消息的類型標示符以及其他的一些附加信息。5、系統定義的結構體MSG用于表示消息,MSG 具有如下定義形式:typedef struct tagMSG{HWND hwnd;UINT message;WPARAM wParam;LPARAM lParam;DWord time;POINT pt;}MSG;其中:hwnd 是窗口的句柄,這個參數將決定由哪個窗口過程函數對消息進行處理;message是一個消息常量,用來表示消息的類型;wParam 和lParam 都是32位的附加信息,具體表示什么內容,要視消息的類型而定;time 是消息發送的時間;pt 是消息發送時鼠標所在的位置。6、Windows 是一消息(Message)驅動式系統,Windows 消息提供了應用程序與應用程序之間、應用程序與Windows 系統之間進行通訊的手段。應用程序要實現的功能由消息來觸發,并靠對消息的響應和處理來完成。7、Windows 系統中有兩種消息隊列,一種是系統消息隊列,另一種是應用程序消息隊列。計算機的所有輸入設備由Windows監控,當一個事件發生時,Windows先將輸入的消息放入系統消息隊列中,然后再將輸入的消息拷貝到相應的應用程序隊列中,應用程序中通過消息循環從它的消息隊列中檢索每一個消息,并在發送給相應的窗口函數中。一個事件的發生,到達處理它的窗口函數必須經歷上述過程。所謂消息就是描述事件發生的信息,windows程序是事件驅動的,因為windows程序執行的順序將取決于事件的發生順序,具有不可預知性。8、消息循環是Windows 應用程序存在的根本,應用程序通過消息循環獲取各種消息,并通過相應的窗口過程函數,對消息加以處理;正是這個消息循環使得一個應用程序能夠響應外部的各種事件,所以消息循環往往是一個Windows 應用程序的核心部分。9、MFC 只是通過對Windows消息映射的進行封裝。

Windows應用程序的消息處理機制總結:1)每一個Windows應用程序開始的時候,系統都會為該程序創建一個消息隊列,這個消息隊列用來存放該程序創建的窗口消息;2)當操作系統接收到應用程序的窗口消息,就將消息投遞到該應用程序的消息隊列中;3)然后,應用程序在消息循環中(while(GetMessage())通過調用GetMessage函數從消息隊列中取出一條條的消息,應用程序可以對這些消息進行一些預處理,比如TranslateMessage;4)應用程序通過調用DispatchMessage,將消息回傳給操作系統;5)系統利用WNDCLASS結構體的lpfnWndPRoc成員保存窗口過程函數的指針,此指針指向窗口過程函數,窗口過程函數是一個回調函數,在特定的事件或條件下發生,由另外一方調用,用于對該事件或條件的響應。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朝阳市| 河池市| 涡阳县| 阿荣旗| 旬邑县| 浮山县| 若羌县| 台南县| 尼勒克县| 兴宁市| 巫山县| 津市市| 布尔津县| 灵武市| 株洲县| 古浪县| 永州市| 渝中区| 开远市| 永城市| 靖西县| 墨玉县| 林芝县| 历史| 定远县| 邯郸市| 怀安县| 东至县| 苏尼特左旗| 登封市| 台山市| 抚宁县| 开封市| 奇台县| 渝北区| 邯郸县| 双江| 尉犁县| 城口县| 夏津县| 新营市|