複製鏈接
請複製以下鏈接發送給好友

子類處理

鎖定
子類處理,又稱為“子類化”或“子類派生”,是一種功能強大的技術,它的作用是在windows中,對發送到窗口的消息進行處理。
中文名
子類處理
別    名
子類化
應用範圍
網絡科技

目錄

子類處理簡介

子類處理,熟悉API函數的VB愛好者們一定不會感到陌生,它又稱為“子類化”或“子類派生”,是一種功能強大的技術。在應用它之前,我們需要先對之原理進行簡單的瞭解:在WINDOWS中,每一個窗口都有一個默認的窗口函數,它的作用是對發送到窗口的消息進行處理。

子類處理應用

在VB中,這個默認的窗口函數不是直接公開的,它提供了對VB中的事件進行處理的代碼,當接受到一條WINDOWS消息時,這個窗口函數就會響應併產生一個VB事件,換言之,這個窗口函數隱藏了消息處理的細節,用一個VB事件來響應一條WINDOWS消息。然而,VB沒有提供對所有WINDOWS消息的支持,許多WINDOWS消息都不會生成一個VB事件,但這不能説是VB的缺點,恰是VB的優點,放棄對那些程序員並不常用的消息的支持,在功能強大和性能穩定之間做了很好的平衡。而且,幸運的是,儘管這個幕後主宰是默認的,但它不是唯一的,我們完全可以用自己定製的一個窗口函數替代它,並保留指向默認窗口函數的指針,當一個消息到達窗口時,自制的窗口函數會攔截它並進行識別處理,對不能識別或不需進行特別處理的消息,就通過指向默認窗口函數的指針傳遞給默認的窗口函數進行處理,這樣便擴充了默認窗口函數的功能。這種用定製的窗口函數代替默認的窗口函數,攔截並處理到達窗口的消息的技術,我們就稱之為“子類處理”,定製的函數我們稱之為“回調函數”。子類處理的方法主要有三種:忽略消息並傳遞給默認的窗口函數;截獲消息,執行特定操作後,傳遞給默認的窗口函數或傳遞給默認的窗口函數處理後,對返回值進行控制;截獲消息,執行特定操作並禁止默認的窗口函數對之進行處理。