windows系統(tǒng)的消息機制_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1章Windows系統(tǒng)的消息機制對諸如PowerBuilder(后文簡寫為PB)、VisualBasic和Dephi等大多數可視化程序設計語言來講,程序設計的核心是對象的事件、屬性和方法,但對Windows系統(tǒng)本身而言,卻是以消息處理為其控制機制。Windows把系統(tǒng)中的對象都作為窗口來對待,每個窗口都有一個用來標識其身份的句柄。Windows通過向窗口發(fā)送消息,在開發(fā)語言中轉化為對象的事件,然后驅動對象,響應用戶的動作。在許多面向對

2、象的可視化程序設計語言中,Windows的眾多消息已經演變成了對象的屬性或方法。本章內容包括Windows系統(tǒng)的消息機制、消息的發(fā)送、消息的應用實例等。1.1Windows的工作機制1.1.1Windows的工作方式——窗口、事件和消息全面地討論Windows的內部工作機制需要很大的篇幅,對于一般的PB用戶當然沒有必要深入了解所有的技術細節(jié)。Windows系統(tǒng)的工作機制,簡單地說就是3個關鍵的概念:窗口、事件和消息。不妨簡單地將窗口看做

3、帶有邊界的矩形區(qū)域。讀者也許已經了解多種不同類型的窗口,如Windows系統(tǒng)的“資源管理器”窗口、文字處理程序中的文檔窗口或者彈出提示有約會信息的消息對話框窗口等。除了這些最普通的窗口外,實際上還有許多其他類型的窗口。命令按鈕是一個窗口,圖標、文本框、選項按鈕和菜單條也都是窗口。Windows操作系統(tǒng)通過給每一個窗口指定一個惟一的標識號(窗口句柄,常用hWnd表示)來管理所有的窗口。操作系統(tǒng)連續(xù)地監(jiān)視每一個窗口的活動或事件的信號。事件可

4、以通過諸如單擊鼠標或按下按鍵的操作而產生,也可以通過程序的控制而產生,甚至可以由另一個窗口的操作而產生。每發(fā)生一次事件,將引發(fā)一條消息發(fā)送至操作系統(tǒng)。操作系統(tǒng)處理該消息并廣播給其他窗口。然后,每一個窗口才能根據自身處理該條消息的指令而采取適當的操作(例如,當窗口解除了其他窗口的覆蓋時,重新繪制自身窗口)??梢韵胂?,處理各種窗口、事件和消息的所有可能的組合將有驚人的工作量。幸運的是,PB使用戶擺脫了所有的低層消息處理。許多消息由PB自動處

5、理了,其他的作為事件過程由編程者自行處理,這樣可以快速創(chuàng)建強大的應用程序,而毋需涉及不必要的細節(jié)。1.1.2句柄的概念在解釋消息之前,首先了解系統(tǒng)如何準確地將消息發(fā)送到指定的窗口。當一個應用或多PowerBuilderWin32API程序設計(高級卷)4(1)窗口句柄(awindowhle):窗口句柄用來標識消息將要發(fā)送到的窗口對象,系統(tǒng)使用窗口句柄來確定哪一個窗口句柄應該接收該消息。(2)消息標識符(amessageidentifie

6、r):消息標識符是用來區(qū)分不同消息的命名常量,當窗口過程接收到一個消息時,它使用消息標識符來確定如何處理該消息。例如,消息標識符WM_PAINT告訴窗口過程“窗口的客戶區(qū)已經發(fā)生變化,窗口必須進行重新繪制”。(3)消息參數(messageparameters):消息參數用來表述窗口過程處理消息時所使用的數據或數據的位置,通常用一對參數表示。消息參數的意義和取值取決于消息。消息參數取值可以是整型數、Bit位標識、指向結構的指針,等等,當不

7、需要使用消息參數時,通常將其設置為NULL。窗口過程必須通過檢查消息標識符來確定如何對消息參數進行解釋。有關消息標識符、消息參數的具體使用,將在后面介紹Sendmessage函數時給予進一步解釋。1.1.4消息的類型1系統(tǒng)定義的消息系統(tǒng)定義的消息當系統(tǒng)與應用進行通信時,系統(tǒng)將發(fā)送或郵寄消息。系統(tǒng)通過這些消息控制應用的運行,并為應用的進程提供輸入或其他信息。應用內部也可發(fā)送或郵寄系統(tǒng)定義的消息,應用通常使用這些消息控制由預先注冊的窗口類創(chuàng)

8、建的窗口的操作。每一個系統(tǒng)定義的消息都有一個惟一的消息標識符(值),并用一個表明消息用途標識符常量表示(這些在SDK的頭文件中定義)。如WM_PAINT消息標識符表示要求窗口進行重繪的消息。消息標識符常量前綴表示消息所屬的消息類別,如WM_表示窗口類消息,BM_表示按鈕類消息,表11給出了不同類別消息的前綴。在PB中,消息標識符常量通常聲明為窗口或對象的實例常量,例如:CONSTANTlongWM_MOUSEMOVE=512CONSTA

9、NTlongWM_LBUTTONDOWN=513CONSTANTlongWM_LBUTTONUP=514CONSTANTlongWM_LBUTTONDBLCLK=515CONSTANTlongWM_RBUTTONDOWN=516CONSTANTlongWM_RBUTTONUP=517CONSTANTlongWM_RBUTTONDBLCLK=518表11Windows系統(tǒng)定義的消息類別消息標識符前綴消息分類ABM應用桌面工具欄消息BM按鈕

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論