現在フォーカスのある入力部のハンドルを得るには?

解決


アルファ  2007-06-14 01:45:41  No: 26627  IP: 192.*.*.*

例えばフォーカスのあるメモ帳(のウィンドウ)のハンドルを得るには、GetActiveWindowや
GetForegroundWindowで事足りるのですが、その中のEdit部分のハンドルを得る方法が
分かりません。

仮にメモ帳だと分かってるならFindWindowEXでクラス名を指定してやれば行けますが、一般にフォーカス
を現在持っている入力部位のハンドルを得る方法です。(例えばIEの検索窓とか)

お分かりの方、よろしくお願いします。

編集 削除
あれ  2007-06-14 05:19:14  No: 26628  IP: 192.*.*.*

GetForegroundWindow  と  AttachThreadInput と  GetFocus  を組み合わせると
ハンドルが取れる、とMSDNには書いてますね。

編集 削除
Fusa  2007-06-15 00:52:22  No: 26629  IP: 192.*.*.*

GetFocusWindowでハンドルが得られるのではないでしょうか。

編集 削除
mmm  2007-06-15 07:25:23  No: 26630  IP: 192.*.*.*

IEの検索窓とかはダメかな
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=030830

編集 削除
n  2007-06-15 21:37:33  No: 26631  IP: 192.*.*.*

普通はGetGUIThreadInfo()で取得できますが、ウェブブラウザの
コントロールはウィンドウハンドルを持っていなかったりもします

編集 削除
アルファ  2007-06-15 22:02:44  No: 26632  IP: 192.*.*.*

mmmさんのリンク先のものでそのまま上手くいきました。
皆さん、ありがとうございました。

編集 削除
アルファ  2007-06-15 22:09:14  No: 26633  IP: 192.*.*.*

あ・・・書き込みが。
なるほど、ハンドルはフォーカスを持てるもの全てが持っているわけでは
ないのですね。勉強になりました。

編集 削除
アルファ  2007-06-16 08:24:41  No: 26634  IP: 192.*.*.*

チェック入れ忘れました

編集 削除