視窗子類別化

基本介紹

  • 中文名:視窗子類別化
  • 外文名:Windows category
  • 實質:Windows內部的一項功能
  • 作用視窗訊息處理程式
捲動列控制項的視窗訊息處理程式是Windows內部的。但是,將GWL_WNDPROC識別字作為參數來呼叫GetWindowLong,您就可以得到這個視窗訊息處理程式的位址。另外,您可以呼叫SetWindowLong給該捲動列設定一個新的視窗訊息處理程式,這個技術叫做“視窗子類別化”,非常有用。它能讓您給現存的視窗訊息處理程式設定“掛勾”,以便在自己的程式中處理一些訊息,同時將其他所有訊息傳遞給舊的視窗訊息處理程式
在COLORS1中對捲動訊息進行初步處理的視窗訊息處理程式叫做ScrollProc,它在COLORS1.C檔案的尾部。由於ScrollProc是COLORS1中的函式,而Windows將呼叫COLORS1,所以ScrollProc必須被定義為callback函式。
對三個捲動列中的每一個,COLORS1使用SetWindowLong來設定新的捲動列視窗訊息處理程式的位址,並取得現存捲動列視窗訊息處理程式的位址:
OldScroll= (WNDPROC) SetWindowLong (hwndScroll, GWL_WNDPROC,
(LONG) ScrollProc)) ;
現在,函式ScrollProc得到了Windows傳送到COLORS1中三個捲動列(當然不是其他程式中的捲動列)的捲動列視窗訊息處理程式的全部訊息。ScrollProc視窗訊息處理程式在接收到Tab或者Shift-Tab鍵時,就將輸入焦點改變到下一個(或者上一個)捲動列。它使用CallWindowProc呼叫舊的捲動列視窗訊息處理程式。

相關詞條

熱門詞條

聯絡我們