首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

編寫回調函數:使用 Callback 類別實現 Win32 API 回調機制

     編輯:Java 相關知識

回調函數概念與應用場景

部分 Win32 API 函數要求傳遞函數指標作為參數,Windows 稍後調用該函數(通常特定事件發生時)。此技術稱「回調函數」。範例:視窗程序、列印過程回調(後台列印程式更新狀態/中止列印)、EnumWindows() 枚舉所有頂層視窗並對每個視窗調用回調函數傳遞視窗控制代碼。

Java 實現回調的機制

在 Java 中必須使用 com.ms.dll 套件的 Callback 類別。繼承 Callback 並覆寫 callback() 方法,僅接受 int 參數,返回 int 或 void。方法簽名與實作取決於使用此回調的 Windows API 函數。創建 Callback 衍生類實例,作為函數指標傳遞給 API 函數,J/Direct 自動完成剩餘工作。

EnumWindows 完整範例

範例調用 EnumWindows(),EnumWindowsProc 類別 callback() 獲取各頂層視窗控制代碼、取得標題文字、列印至控制台。main() 中調用 User32.EnumWindows() 傳入回調實例,sleep() 允許視窗程序在 main() 退出前完成。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved