VB6で現在のウィンドウ/フォームのhWndを取得するにはどうすればよいですか?
3 に答える
フォームを使用している場合: Me.hWnd
。現在のフォームがわからない場合: Screen.ActiveForm.hWnd
Windows APIを使用GetForegroundWindow()
すると、どのアプリケーションからのものであるかに関係なく、最上位のウィンドウのハンドルを取得し、アプリケーションのアクティブなウィンドウのGetActiveWindow()
ハンドルを取得します。必要なステートメント:Declare
Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Declare Function GetActiveWindow Lib "user32.dll" () As Long
いずれかの関数を呼び出すと、上記のようにウィンドウハンドルが返されます。
VB6を使用してから長い時間が経ちましたが、これは私が覚えていることです。
APIビューアを開きます。これは、VB6エントリの周りのスタートメニューにあるはずです。それを開くときに、win32api.txtを選択すると、すべてのWin32API関数のリストが表示されます。これは、関数のシグネチャを台無しにしないための最も簡単な方法です。関数宣言をコピーして、VB6モジュールの1つに貼り付けます。
GetWindowで使用可能なすべてのウィンドウをループするのではなく、常に「ごまかして」、キャプション名でウィンドウを探しました。これで問題がない場合は、FindWindowを使用して、2番目のパラメーターとしてキャプション名を渡します。