C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■96055 / 1階層)  ウインドウの表示順番の取得
□投稿者/ KOZ (138回)-(2020/10/19(Mon) 10:06:46)
No96047 (雀 さん) に返信
> ウインドウの位置に関してはどの変数を使えば良いか分かるのですが
> 表示順番に関してどのパラメータを使えば良いでしょうか?

こんな感じで並びを調べるしか方法がなさそうです。

Imports System.Runtime.InteropServices

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function GetWindow(ByVal hWnd As IntPtr, ByVal uCmd As GetWindowType) As IntPtr
End Function

Private Enum GetWindowType As UInteger
    GW_HWNDFIRST = 0
    GW_HWNDLAST = 1
    GW_HWNDNEXT = 2
    GW_HWNDPREV = 3
    GW_OWNER = 4
    GW_CHILD = 5
    GW_ENABLEDPOPUP = 6
End Enum

Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
    If Me.MdiChildren.Count > 0 Then
        Debug.Print("--START--")
        Dim childHwnd As IntPtr = GetWindow(Me.MdiChildren(0).Handle, GetWindowType.GW_HWNDFIRST)
        While childHwnd <> IntPtr.Zero
            Dim f As Form = Control.FromHandle(childHwnd)
            Debug.Print(f.Text)
            childHwnd = GetWindow(childHwnd, GetWindowType.GW_HWNDNEXT)
        End While
    End If
End Sub

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←ウインドウの表示順番の取得 /雀 →Re[2]: ウインドウの表示順番の取得 /雀
 
上記関連ツリー

ウインドウの表示順番の取得 / 雀 (20/10/18(Sun) 20:40) #96047
Re[1]: ウインドウの表示順番の取得 / 雀 (20/10/18(Sun) 22:04) #96048 解決済み
│└ Re[2]: ウインドウの表示順番の取得 / 雀 (20/10/18(Sun) 22:05) #96049
ウインドウの表示順番の取得 / KOZ (20/10/19(Mon) 10:06) #96055 ←Now
  └ Re[2]: ウインドウの表示順番の取得 / 雀 (20/10/19(Mon) 22:15) #96070
    └ Re[3]: ウインドウの表示順番の取得 / 雀 (20/10/19(Mon) 23:02) #96073
      └ Re[4]: ウインドウの表示順番の取得 / KOZ (20/10/20(Tue) 00:46) #96075
        └ Re[5]: ウインドウの表示順番の取得 / 雀 (20/10/21(Wed) 18:01) #96105 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信