ウィンドウのサイズ・表示位置・Z オーダーの設定をする (SetWindowPos)

user32.dll の SetWindowPos を用いて、ウィンドウのサイズ・表示位置・Z オーダーを設定します。
サンプルのダウンロード

このカテゴリーの先頭へ このページの先頭へ

■サンプルの説明

起動したところ
起動すると、こんな画面が表示されます。

このカテゴリーの先頭へ このページの先頭へ

■コード

F0008_SetWindowPos.vb
Imports System.Runtime.InteropServices
''' <summary>
''' SetWindowPos(user32.dll)
''' </summary>
Partial Public Class F0008_SetWindowPos

    ''' <summary>
    ''' SetWindowPos(ウィンドウのサイズ・表示位置・Zオーダーの設定)の宣言
    ''' </summary>
    <DllImport("user32.dll", CharSet:=CharSet.Auto)> _
    Private Shared Function SetWindowPos( _
                            ByVal hWnd As IntPtr, _
                            ByVal hWndInsertAfter As Integer, _
                            ByVal x As Integer, _
                            ByVal y As Integer, _
                            ByVal cx As Integer, _
                            ByVal cy As Integer, _
                            ByVal uFlags As Integer) _
                            As Boolean
    End Function

    '最前面
    Private Const HWND_TOPMOST As Integer = -1
    '前面
    Private Const HWND_TOP As Integer = 0
    'すべての最前面ウィンドウの後ろ
    Private Const HWND_NOTOPMOST As Integer = -2
    'Z オーダーの最後
    Private Const HWND_BOTTOM As Integer = 1

    ''ウィンドウのサイズと位置の変更に関するフラグ
    'ウィンドウを表示
    Private Const SWP_SHOWWINDOW As Integer = &H40
    '現在のサイズを維持(cx、cyは無視)
    Private Const SWP_NOSIZE As Integer = &H1
    '現在の位置を維持します(x、yは無視)
    Private Const SWP_NOMOVE As Integer = &H2

    ''' <summary>
    ''' ロード時のイベント
    ''' </summary>
    Private Sub F0008_SetWindowPos_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Text = "F0008_SetWindowPos"

        '自身を最前面に表示する
        SetWindowPos(Me.Handle, _
                     HWND_TOPMOST, _
                     100, _
                     150, _
                     100, _
                     250, _
                     SWP_SHOWWINDOW)
    End Sub

End Class
このカテゴリーの先頭へ このページの先頭へ

■参考資料

SetWindowPos