2009-11-23 58 views

回答

1

檢查這些功能:

::wxFindWindowAtPoint  
::wxFindWindowAtPointer 
+0

這些方法似乎並不適用於Windows的工作除了代碼上託管的窗口... 像我有: [CODE] 無效MyFrame: :OnGetWindowClick(wxCommandEvent&WXUNUSED(event)) { \t wxThread :: Sleep(619); \t wxPoint pt = wxGetMousePosition(); \t wxWindow * winpt = wxFindWindowAtPointer(pt); \t std :: cout <<「px =」<< pt.x << std :: endl; \t std :: cout <<「window =」<< winpt-> GetId()<< std :: endl; } [/ CODE] 我得到當前hello世界窗口(這給了我2006)的窗口ID,然後標籤返回空白。對於所有其他窗口,它表示分段失敗,因爲返回的窗口爲NULL ... – 2009-11-24 00:50:16

+0

您沒有在您的問題中說您想從_any_窗口獲取id或設備上下文。 WxWidgets應用程序僅保存有關由其自身創建的對象的信息。 我不認爲這可以通過wxWidgets及其記錄的功能和方法來完成。 嘗試使用本地API函數。 MS Windows API有一個名爲WindowFromPoint的函數,它可以做你想做的事情,但它返回目標窗口的HWND。您必須使用此句柄來獲取有關目標窗口的其他信息。 – Wacek 2009-11-24 07:39:53

+0

Linux中的本地API函數是什麼? – 2009-11-24 15:01:10