タイトル | : Re^3: 複数フォームの上下を保つ方法 |
記事No | : 10451 |
投稿日 | : 2011/03/07(Mon) 18:03 |
投稿者 | : 花ちゃん |
ようは、Form2 の方で、Form1 がアクティブになった事を取得したら、Form2 を Form1 より上になるようにしてやればいいだけで、ただ、どのようにして、それを 取得するかという事が問題で、簡単な方法ならタイマーコントロールを使用するのが 一番かと。(.NET 以降ならもっとうまい手があるかも知れませんが?)
タイマーコントロールを使うなら Form2 で Private Sub Timer1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick Dim AWhwnd As IntPtr Dim lpString As String = Strings.StrDup(255, " "c) Dim lngResult As Integer Dim Title As String AWhwnd = GetForegroundWindow() 'ハンドルを取得 'アクティブウインドウのタイトルを取得 lngResult = GetWindowText(AWhwnd, lpString, 255) Title = Microsoft.VisualBasic.Left(lpString, InStr(lpString, vbNullChar) - 1) If Title = "Form1" Or Title = Me.Text Then lngResult = SetWindowPos(Me.Handle, HWND_TOP _ , 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) 'Else ' lngResult = SetWindowPos(Me.Handle, HWND_TOP _ ' , 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) End If
End Sub
|