簡體   English   中英

WinApi如何獲取表單中活動元素的句柄

[英]WinApi how to get the handle of the active element in a form

使用以下代碼部分,我可以獲得打開的打開文件對話框的句柄。 這很好。

HWND handleForWindow = FindWindow(NULL, "Open");

現在,我需要在同一對話框的文本框區域中鍵入filepath + filename。 為此,我需要獲取TextBox的句柄。 我一直在使用Spy ++,到目前為止效果很好。 但是,它沒有得到TextBox的句柄。 間諜++說該類是“編輯”,沒有標題。

我嘗試了以下以及標題和類名的其他一些可能性,但沒有運氣。

HWND hwndTextBox = FindWindowEx(handleForWindow, 0, "Edit", "Caption");

實際上TextBox是ComboBox的一部分。 如果我把它放在那里“ComboBox”,它會得到很好的處理。 但在這種情況下,如果我發送短信到框,它不會在那里放任何文字。

SendMessage(hwndTextBox, WM_SETTEXT, 0, (LPARAM)"AnyText");

由於這不起作用,我想到了在窗口中獲取當前活動元素,因為TextBox在打開時始終處於活動狀態。 但我找不到任何Api呼叫。 有人可以幫我嗎?

謝謝。

您可以將CB_GETCOMBOBOXINFO消息發送到ComboBox以檢索其編輯框的HWND

如果您嘗試與公共對話庫中的“ 打開文件”對話框進行交互,則可以將CDM_GETFOLDERPATHCDM_GETFILEPATH消息發送到對話框本身以獲取其當前路徑和文件名,並發送CDM_SETCONTROLTEXT消息以更改對話框cmb13顯示的文件名或edt1字段(請參閱資源管理器樣式控件標識符 )。

暫無
暫無

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

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