ウィンドウを縦横に並べて、または重ねて表示          <TOP>


TileWindows 指定されたウィンドウまたは指定された親ウィンドウの子ウィンドウを並べて表示
CascadeWindows 指定された親ウィンドウの指定された子ウィンドウを重ねて表示

 

 

 

'================================================================
'= ウィンドウを縦横に並べて、または重ねて表示
'=     (TileWindows.bas)
'================================================================
#include "Windows.bi"

Type RECT
    Left   As Long
    Top    As Long
    Right  As Long
    Bottom As Long
End Type

#define MDITILE_VERTICAL &H0            'MDIクライアントウィンドウの高さ一杯に左右に並べて表示
#define MDITILE_HORIZONTAL &H1          'MDIクライアントウィンドウの横幅一杯に上下に並べて表示
#define MDITILE_SKIPDISABLED &H2        '使用禁止状態のMDI子ウィンドウを除外
#define MDITILE_ZORDER &H4              'ウィンドウはZオーダーに従って整列

' 指定されたウィンドウまたは指定された親ウィンドウの子ウィンドウを並べて表示する
Declare Function Api_TileWindows& Lib "user32" Alias "TileWindows" (ByVal hwndParent&, ByVal wHow&, lpRect As RECT, ByVal cKids&, lpKids&)

' 指定された親ウィンドウの指定された子ウィンドウを重ねて表示
Declare Function Api_CascadeWindows& Lib "user32" Alias "CascadeWindows" (ByVal hwndParent&, ByVal wHow&, lpRect As RECT, ByVal cKids&, lpkids&)

Var Shared rc As RECT

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()

    'ウィンドウを整列する長方形を指定
    rc.left = 0
    rc.top = 0
    rc.right = 600
    rc.bottom = 480
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Ret As Long

    'デスクトップ上のウィンドウを横に整列
    Ret = Api_TileWindows(0, MDITILE_HORIZONTAL, rc, 0, ByVal 0)
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Ret As Long

    'デスクトップ上のウィンドウを縦に整列
    Ret = Api_TileWindows(0, MDITILE_VERTICAL, rc, 0, ByVal 0)
End Sub

'================================================================
'=
'================================================================
Declare Sub Button3_on edecl ()
Sub Button3_on()
    Var Ret As Long

    'デスクトップ上のウィンドウを重ねて表示
    Ret = Api_CascadeWindows(0, MDITILE_SKIPDISABLED, rc, 0, ByVal 0)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End