| 
|  | 過去のログで検索したら、ともさんという方が投稿されたコードがあるのですが、コードを見ても理解ができません。上下に指定IDのウィンドウを並べる方法ありますでしょうか? 
 Dim nCount = Random(4) + 2;
 Dim id[nCount-1];
 Dim i;
 For i = 0 To nCount-1
 id[i] = Exec("notepad.exe");
 Next
 
 MsgBox("重ねて表示");
 AdjustWindows(CascadeWindows, id);
 MsgBox("上下に並べて表示");
 AdjustWindows(TileHorizontally, id);
 MsgBox("左右に並べて表示");
 AdjustWindows(TileVertically, id);
 
 
 Procedure  AdjustWindows(nType, var wndID[])
 DEF_DLL VirtualAlloc(LONG, DWORD, DWORD, DWORD):LONG:KERNEL32.DLL
 DEF_DLL VirtualFree(LONG, DWORD, DWORD):BOOL:KERNEL32.DLL
 DEF_DLL RtlMoveMemory(LONG, var LONG, DWORD)::KERNEL32.DLL
 DEF_DLL TileWindows(HWND, UINT, LONG, UINT, LONG):WORD:USER32.DLL
 DEF_DLL CascadeWindows(HWND, UINT, LONG, UINT, LONG):WORD:USER32.DLL
 
 const  MEM_COMMIT = $1000;
 const  PAGE_READWRITE = $0004;
 const  MEM_RELEASE = $8000;
 const  MDITILE_VERTICAL = $0000;
 const  MDITILE_HORIZONTAL = $0001;
 
 const  CascadeWindows = 0;
 const  MinimizeAll = 1;
 const  TileHorizontally = 2;
 const  TileVertically = 3;
 const  UndoMinimizeALL = 4;
 
 Dim  nLen = Length(wndID);
 Dim  dwSize = nLen * 4;
 Dim  pMem = VirtualAlloc(0, dwSize, MEM_COMMIT, PAGE_READWRITE);
 Dim i;
 For i = 0 To nLen-1
 RtlMoveMemory(pMem + (i*4), IdToHnd(wndID[i]), 4);
 Next
 
 Select (nType)
 case CascadeWindows;
 CascadeWindows(0, 0, 0, nLen, pMem);
 case TileHorizontally;
 TileWindows(0, MDITILE_HORIZONTAL, 0, nLen, pMem);
 case TileVertically;
 TileWindows(0, MDITILE_VERTICAL, 0, nLen, pMem);
 SelEnd
 VirtualFree(pMem, 0, MEM_RELEASE);
 FEnd
 
 |  No.2839 2016/09/04(Sun) 22:12:53 
 
|  | ☆ Re: 上下に指定のIDウィンドウを並べる方法について / stuncloud |  
|  | 
|  | AdjustWindows(やらせたい動作, idが入った配列) 
 上下だったらTileHorizontallyですね
 
 id1 = exec("notepad")
 id2 = exec("notepad")
 dim ids[] = id1, id2 // 配列に入れる
 AdjustWindows(TileHorizontally, ids) //上下に並べる
 
 acwを使うという手もありますよ
 
 h = G_SCREEN_H / 2
 acw(id1, 0, 0, G_SCREEN_W, h)
 acw(id2, 0, h, G_SCREEN_W, h)
 
 |  No.2843 2016/09/05(Mon) 10:08:47 |  
 
|  | ☆ Re: 上下に指定のIDウィンドウを並べる方法について / シスイ |  
|  | 
|  | stuncloud様、いつもありがとうございます。acwをやり方思う通りの処理ができました。本当に、いつも助けて頂きありがとうございます。 
 |  No.2844 2016/09/05(Mon) 12:46:59 |  |