6

VB6で現在のウィンドウ/フォームのhWndを取得するにはどうすればよいですか?

4

3 に答える 3

16

フォームを使用している場合: Me.hWnd。現在のフォームがわからない場合: Screen.ActiveForm.hWnd

于 2010-02-15T14:29:04.873 に答える
9

Windows APIを使用GetForegroundWindow()すると、どのアプリケーションからのものであるかに関係なく、最上位のウィンドウのハンドルを取得し、アプリケーションのアクティブなウィンドウのGetActiveWindow()ハンドルを取得します。必要なステートメント:Declare

Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Declare Function GetActiveWindow Lib "user32.dll" () As Long 

いずれかの関数を呼び出すと、上記のようにウィンドウハンドルが返されます。

于 2010-02-15T14:34:36.217 に答える
3

VB6を使用してから長い時間が経ちましたが、これは私が覚えていることです。

APIビューアを開きます。これは、VB6エントリの周りのスタートメニューにあるはずです。それを開くときに、win32api.txtを選択すると、すべてのWin32API関数のリストが表示されます。これは、関数のシグネチャを台無しにしないための最も簡単な方法です。関数宣言をコピーして、VB6モジュールの1つに貼り付けます。

GetWindowで使用可能なすべてのウィンドウをループするのではなく、常に「ごまかして」、キャプション名でウィンドウを探しました。これで問題がない場合は、FindWindowを使用して、2番目のパラメーターとしてキャプション名を渡します。

于 2010-02-15T14:24:32.677 に答える