2012-07-31 70 views
0

我正在試着製作一個鍵盤,當你需要它時就會彈出,就像iPhone的網頁瀏覽器一樣。在用戶激活任何窗口上的文本框時應該發生的Windows。當用戶在Windows上激活文本框時檢測到

搜索後我打算嘗試EnumWindows和EnumChildWindows枚舉所有控件。如果這有效(我懷疑),那我該如何判斷哪一個是活動的,以及該控件是否接受文本輸入?還是有更好的方法來實現我想要做的事情?

項目使用C++和Win32 API。

編輯:基於rene的評論,我現在可以通過SetWinEventHook函數和EVENT_OBJECT_FOCUS獲得活動(子)窗口句柄。但我仍然無法弄清楚它是否是用戶可以輸入文本的窗口。

調用GetGUIThreadInfo並將返回的hwndCaret句柄與由SetWinEventHook回調返回的窗口進行比較部分工作。它適用於記事本和Chrome地址欄,但不適用於例如MS Visual Studio子窗口。

+1

不是Windows輔助功能的一部分? http://msdn.microsoft.com/en-us/library/ee663255(v=vs.85) – rene 2012-07-31 11:10:21

+0

確實,看起來像輔助功能獲得了我需要的一切。感謝您的信息。 – superg 2012-07-31 12:32:39

回答