我看大家都越說越糊塗了,
我就來解釋一下CALLBACK的用途吧!
首先我就舉一個CALLBACK的實際範例,
在WINDOWS中都有一個調整混音器的程式,就是調音量的程式(系統提供的那一個)
當你同時開啟許多混音器程式時,你試著去調整每其中一個音量大小,
其餘的混音器程式的音量大小也會跟者改變,這是如何做到的呢?
就是利用CALLBACK,CALLBACK的呼叫方式有兩種
第一種CALLBACK FUNCTION
當CALLBACK的MESSAGE產生時,自動會去執行你當初設定的CALLBACK FUNCTION
所以你便可以在那個FUNCTION中去取得該訊息的某些資訊,如在MIXER程式中,
你便知道有人已經改變了音量大小,因此你便去取得目前的音量大小,進而改變畫面,
才不會導致每個MIXER程式的音量畫面不協調的情況,有許多程式都沒有做到處理CALLBACK
, 如WINAPM的音量大小就沒有處理CALLBACK,才會導致WINDOWS的音量已經改變,但WINAMP的畫面
並沒有更新
第二種是CALLBACK WINDOW
當CALLBACK的MESSAGE產生時, 會呼叫你的應用程式,所以你的程式必須攔截此MESSAGE,
取得相關資訊,進而跟著改變程式的狀態
至於系統如何處理CALLBACK的MESSAGE呢?
在CALLBACK MESSAGE產生時,OS會自動呼叫所有攔截此MESSAGE的FUNCTION或程式,
使每個用到此MESSAGE的程式都能知道某種資訊已經被改變了
這樣說明夠清楚了吧!(因為我有寫過CALLBACK的相關應用程式,
所以這種解釋應該可信)
--
※ Origin: 元智大學 風之塔 <bbs.yzu.edu.tw> ◆ From: [ip-lab-4.cse.yzu.ed]