簡體   English   中英

如何從句柄中檢索組件名稱?

[英]How from an Handle can I retrieve the component name?

在我的應用程序中,我通過SetWindowsHookEx捕獲所有事件,當用戶單擊按鈕時,我會檢索一個 hwnd,我猜它是 Tbutton 的句柄。

typedef struct tagMSG {
  HWND   hwnd;
  UINT   message;
  WPARAM wParam;
  LPARAM lParam;
  DWORD  time;
  POINT  pt;
  DWORD  lPrivate;
} MSG, *P

現在我如何從這個 hwnd 檢索按鈕名稱(或者更好的是代表按鈕的 Delphi 對象?)。

也許我也可以通過POINT pt;檢索組件POINT pt; ?

您可以使用FindControl ,如果窗口是由屬於調用該函數的 VCL 的同一實例的控件創建的,它將檢索對象實例。 由於Name是在TComponent發布的,因此無論實際的類類型如何,您都可以訪問該屬性。

每個窗口化 VCL 控件都有其對象實例地址存儲在 API 窗口的屬性列表中,以及包含模塊地址、進程 id、線程 id 信息的屬性。 這使得 VCL 可以從它創建的窗口回溯控件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM