當前位置:編程學習大全網 - 編程軟體 - 操作系統概念編程問題的答案

操作系統概念編程問題的答案

while(GetMessage(& amp;msg,NULL,0,0))

{

翻譯消息(& amp味精);

dispatch message(amp;味精);

}

這是Windows操作系統的窗口應用程序的核心程序片段。每個窗口應用程序都會有它。

每壹個要和windows打交道的進程(計算機操作系統中的概念)都會有上面的結構。而且每個有窗口的線程都會有壹個消息隊列(也是壹個操作系統概念,在Windows操作系統中有規定),這個消息隊列是由Windows操作系統維護的。當任何事件被通知給這個線程時,壹個消息事件就像它所屬的消息壹樣被排隊發送。

GetMessage的意思是從消息隊列中提取消息。

TranslateMessage大致意思是將虛擬按鍵消息轉換成字符消息。

虛擬鍵是Windows系統定義的鍵盤鍵。鍵盤上有多少個鍵,就有多個虛擬鍵。

但是虛擬鍵並不是應用程序需要的關鍵信息。TranslateMessage將虛擬鍵轉換為相應的字符。例如,虛擬鍵“a”(沒有小寫,因為鍵盤是大寫的)被轉換為字符“a”(如果鍵盤是大寫的)或字符“a”(如果鍵盤是小寫的)。

DispatchMessage的意思是將此消息發送給msg中提到的窗口的窗口處理程序。

msg的類型是壹個結構,它包含將消息發送到哪個窗口的內容。

每個窗口都有對應的窗口處理函數,函數就是處理與這個窗口相關的工作。

所以上述循環體的功能是,

不斷地從消息隊列中獲取消息(如果有的話),如果是虛鍵消息就轉換成字符消息。將消息發送給相應的窗口處理程序。

  • 上一篇:Machining Strategist軟件編程怎樣
  • 下一篇:如何使用Visual Studio 2013創建Win32 API程序
  • copyright 2024編程學習大全網