精華區beta Programming 關於我們 聯絡資訊
我看大家都越說越糊塗了, 我就來解釋一下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]