Changeset 612 in dev


Ignore:
Timestamp:
May 18, 2008, 7:15:49 PM (17 years ago)
Author:
dai_9181
Message:

WndInfoNum利用コード周りをリファクタリング中

Location:
trunk/ab5.0/abdev/abdev
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/Common.h

    r609 r612  
    11051105
    11061106//RadProc.cpp
    1107 void NewRadWindow(int WndInfoNum);
     1107void NewRadWindow( const WINDOW_INFO &windowInfo );
    11081108int InsertDlgItem(int WndNum,int WndInfoNum,int ItemNum,POINT *pPos,SIZE *pSize,char *IdName,char *caption,DWORD style_or_WndNum,DWORD ExStyle,int Control,int ImageType,char *ImagePath,DWORD dwInsertType);
    11091109void DeleteDlgItem(int WndNum,int WndInfoNum,int ItemNum,BOOL bNoticeChanging);
     
    11171117
    11181118//DrawWindow.cpp
    1119 void DrawRadWindow(int WndNum,WINDOW_INFO *pWindowInfo);
     1119void DrawRadWindow(int WndNum,const WINDOW_INFO *pWindowInfo);
    11201120
    11211121//Rad_UndoRedo.cpp
     
    11531153//RadSupport.cpp
    11541154LRESULT CALLBACK TestWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
    1155 void SetSupportDlgData(int WndNum,int WndInfoNum);
     1155void SetSupportDlgData(int WndNum, const WINDOW_INFO &windowInfo );
    11561156BOOL CALLBACK DlgRadSupport(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
    11571157
  • trunk/ab5.0/abdev/abdev/DrawWindow.cpp

    r475 r612  
    689689    DeleteObject(hBmp);
    690690}
    691 void DesigningWindow(int WndNum,HDC hdc,POINT *pBasePos,WINDOW_INFO *pWindowInfo){
     691void DesigningWindow(int WndNum,HDC hdc,POINT *pBasePos,const WINDOW_INFO *pWindowInfo){
    692692    extern MDIINFO MdiInfo[MAX_WNDNUM];
    693693    extern PROJECTINFO ProjectInfo;
     
    17511751    DeleteObject(hFont);
    17521752}
    1753 void DrawRadWindow(int WndNum,WINDOW_INFO *pWindowInfo){
     1753void DrawRadWindow(int WndNum,const WINDOW_INFO *pWindowInfo){
    17541754    extern MDIINFO MdiInfo[MAX_WNDNUM];
    17551755    HBRUSH hOldBrush;
  • trunk/ab5.0/abdev/abdev/ProjectControl.cpp

    r609 r612  
    182182                    for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
    183183                        if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
    184                             NewRadWindow(i);
     184                            NewRadWindow( ProjectInfo.windowInfos[i] );
    185185                            break;
    186186                        }
     
    15901590                            for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
    15911591                                if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
    1592                                     NewRadWindow(i3);
     1592                                    NewRadWindow( ProjectInfo.windowInfos[i3] );
    15931593                                    break;
    15941594                                }
     
    17121712                            for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
    17131713                                if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
    1714                                     NewRadWindow(i3);
     1714                                    NewRadWindow( ProjectInfo.windowInfos[i3] );
    17151715                                    break;
    17161716                                }
  • trunk/ab5.0/abdev/abdev/RadProc.cpp

    r611 r612  
    44#include "common.h"
    55
    6 void NewRadWindow(int WndInfoNum){
     6void NewRadWindow( const WINDOW_INFO &windowInfo )
     7{
    78    extern HINSTANCE hInst,hResInst;
    89    extern HWND hDocCombo;
     
    1314    RECT rect;
    1415    MDICREATESTRUCT mdic;
    15     WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
    1616
    1717    //すでに指定されたファイルが開かれている場合
     
    2020        i=GetWndNum(hChild);
    2121        if(MdiInfo[i].DocType==WNDTYPE_RAD){
    22             if(lstrcmpi(MdiInfo[i].path,pWindowInfo->name)==0) break;
     22            if(lstrcmpi(MdiInfo[i].path,windowInfo.name)==0) break;
    2323        }
    2424        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    2929    }
    3030
    31     mdic.szTitle=pWindowInfo->name;
     31    mdic.szTitle=windowInfo.name;
    3232    mdic.szClass="MDIClientWindow_Rad";
    3333    mdic.hOwner=hInst;
     
    8686            MdiInfo[i].hwnd=hChild;
    8787            MdiInfo[i].DocType=WNDTYPE_RAD;
    88             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pWindowInfo->name)+1);
    89             lstrcpy(MdiInfo[i].title,pWindowInfo->name);
    90             MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pWindowInfo->name)+1);
    91             lstrcpy(MdiInfo[i].path,pWindowInfo->name);
     88            MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(windowInfo.name)+1);
     89            lstrcpy(MdiInfo[i].title,windowInfo.name);
     90            MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(windowInfo.name)+1);
     91            lstrcpy(MdiInfo[i].path,windowInfo.name);
    9292
    9393
     
    127127
    128128
    129             DrawRadWindow(i,pWindowInfo);
     129            DrawRadWindow(i,&windowInfo);
    130130
    131131            //サポートダイアログの内容をセット
    132             SetSupportDlgData(i,WndInfoNum);
     132            SetSupportDlgData(i,windowInfo);
    133133
    134134            break;
     
    142142    ResizeToRadToolWindows(i,rect.right,rect.bottom);
    143143
    144     i=SendMessage(hDocCombo,CB_ADDSTRING,0,(long)pWindowInfo->name);    //Docコンボボックスに追加
     144    i=SendMessage(hDocCombo,CB_ADDSTRING,0,(long)windowInfo.name);  //Docコンボボックスに追加
    145145    SendMessage(hDocCombo,CB_SETCURSEL,i,0);
    146146
    147147    //タブに追加
    148     pobj_MainTab->InsertItem( pWindowInfo->name, true );
     148    pobj_MainTab->InsertItem( windowInfo.name, true );
    149149
    150150    //メニュー状態を設定
     
    678678
    679679    //サポートダイアログの内容をセット
    680     SetSupportDlgData(WndNum,WndInfoNum);
     680    SetSupportDlgData( WndNum, ProjectInfo.windowInfos[WndInfoNum] );
    681681}
    682682void SetItemNumOnFrame(int WndNum,int WndInfoNum,RECT *pRect){
     
    843843
    844844                                //サポートダイアログの内容をセット
    845                                 SetSupportDlgData(i,i2);
     845                                SetSupportDlgData( i, *pWindowInfo );
    846846                                break;
    847847                            }
     
    958958
    959959                        //サポートダイアログの内容をセット
    960                         SetSupportDlgData(i,i2);
     960                        SetSupportDlgData( i, *pWindowInfo );
    961961                    }
    962962                }
     
    12801280            }
    12811281        case WM_MOUSEMOVE:
    1282             mouse.x=(int)(short)LOWORD(lParam);
    1283             mouse.y=(int)(short)HIWORD(lParam);
    1284             CursorPos_LocalToGlobal(hwnd,&mouse.x,&mouse.y);
    1285 
    1286             hParent=GetParent(hwnd);
    1287             i=GetWndNum(hParent);
    1288             i2 = GetWndInfoNum(MdiInfo[i].path);
    1289 
    1290             if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
    1291                 if(wParam&MK_LBUTTON&&RadInfo.NowDragging){
    1292                     ////////////////////////////////////////////////
    1293                     // ドラッグ中の場合(コントロールのサイズ変更)
    1294 
    1295                     if(RadInfo.NowDragging==FRAME_UPPER_LEFT){
    1296                         if(RadInfo.DraggingRect[0].right-MIN_ITEM_X<=(mouse.x+LEVER_THICK))
    1297                             RadInfo.DraggingRect[0].left=RadInfo.DraggingRect[0].right-MIN_ITEM_X;
    1298                         else if(mouse.x+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.x)
    1299                             RadInfo.DraggingRect[0].left=MdiInfo[i].MdiRadInfo->ClientPos.x;
    1300                         else RadInfo.DraggingRect[0].left=mouse.x+LEVER_THICK;
    1301 
    1302                         if(RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y<=(mouse.y+LEVER_THICK))
    1303                             RadInfo.DraggingRect[0].top=RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y;
    1304                         else if(mouse.y+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.y)
    1305                             RadInfo.DraggingRect[0].top=MdiInfo[i].MdiRadInfo->ClientPos.y;
    1306                         else RadInfo.DraggingRect[0].top=mouse.y+LEVER_THICK;
    1307                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1308                     }
    1309                     else if(RadInfo.NowDragging==FRAME_UPPER_RIGHT){
    1310                         if(mouse.x-LEVER_THICK-MIN_ITEM_X<=RadInfo.DraggingRect[0].left)
    1311                             RadInfo.DraggingRect[0].right=RadInfo.DraggingRect[0].left+MIN_ITEM_X;
    1312                         else if(mouse.x>MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx)
    1313                             RadInfo.DraggingRect[0].right=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
    1314                         else RadInfo.DraggingRect[0].right=mouse.x-LEVER_THICK;
    1315 
    1316                         if(RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y<=(mouse.y+LEVER_THICK)) RadInfo.DraggingRect[0].top=RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y;
    1317                         else if(mouse.y+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.y)
    1318                             RadInfo.DraggingRect[0].top=MdiInfo[i].MdiRadInfo->ClientPos.y;
    1319                         else RadInfo.DraggingRect[0].top=mouse.y+LEVER_THICK;
    1320                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1321                     }
    1322                     else if(RadInfo.NowDragging==FRAME_LOWER_LEFT){
    1323                         if(RadInfo.DraggingRect[0].right-MIN_ITEM_X<=(mouse.x+LEVER_THICK))
    1324                             RadInfo.DraggingRect[0].left=RadInfo.DraggingRect[0].right-MIN_ITEM_X;
    1325                         else if(mouse.x+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.x)
    1326                             RadInfo.DraggingRect[0].left=MdiInfo[i].MdiRadInfo->ClientPos.x;
    1327                         else RadInfo.DraggingRect[0].left=mouse.x+LEVER_THICK;
    1328 
    1329                         if(mouse.y-LEVER_THICK-MIN_ITEM_Y<=RadInfo.DraggingRect[0].top)
    1330                             RadInfo.DraggingRect[0].bottom=RadInfo.DraggingRect[0].top+MIN_ITEM_Y;
    1331                         else if(mouse.y>MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy)
    1332                             RadInfo.DraggingRect[0].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
    1333                         else RadInfo.DraggingRect[0].bottom=mouse.y-LEVER_THICK;
    1334                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1335                     }
    1336                     else if(RadInfo.NowDragging==FRAME_LOWER_RIGHT){
    1337                         if(mouse.x-LEVER_THICK-MIN_ITEM_X<=RadInfo.DraggingRect[0].left)
    1338                             RadInfo.DraggingRect[0].right=RadInfo.DraggingRect[0].left+MIN_ITEM_X;
    1339                         else if((mouse.x>MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
    1340                             RadInfo.DraggingRect[0].right=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
    1341                         else RadInfo.DraggingRect[0].right=mouse.x-LEVER_THICK;
    1342 
    1343                         if(mouse.y-LEVER_THICK-MIN_ITEM_Y<=RadInfo.DraggingRect[0].top)
    1344                             RadInfo.DraggingRect[0].bottom=RadInfo.DraggingRect[0].top+MIN_ITEM_Y;
    1345                         else if((mouse.y>MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
    1346                             RadInfo.DraggingRect[0].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
    1347                         else RadInfo.DraggingRect[0].bottom=mouse.y-LEVER_THICK;
    1348                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1349                     }
    1350                     else if(RadInfo.NowDragging==FRAME_LEFT){
    1351                         if(RadInfo.DraggingRect[0].right-MIN_ITEM_X<=(mouse.x+LEVER_THICK))
    1352                             RadInfo.DraggingRect[0].left=RadInfo.DraggingRect[0].right-MIN_ITEM_X;
    1353                         else if(mouse.x+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.x)
    1354                             RadInfo.DraggingRect[0].left=MdiInfo[i].MdiRadInfo->ClientPos.x;
    1355                         else RadInfo.DraggingRect[0].left=mouse.x+LEVER_THICK;
    1356                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1357                     }
    1358                     else if(RadInfo.NowDragging==FRAME_RIGHT){
    1359                         if(mouse.x-LEVER_THICK-MIN_ITEM_X<=RadInfo.DraggingRect[0].left)
    1360                             RadInfo.DraggingRect[0].right=RadInfo.DraggingRect[0].left+MIN_ITEM_X;
    1361                         else if((mouse.x>MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
    1362                             RadInfo.DraggingRect[0].right=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
    1363                         else RadInfo.DraggingRect[0].right=mouse.x-LEVER_THICK;
    1364                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1365                     }
    1366                     else if(RadInfo.NowDragging==FRAME_UPPER){
    1367                         if(RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y<=(mouse.y+LEVER_THICK))
    1368                             RadInfo.DraggingRect[0].top=RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y;
    1369                         else if(mouse.y+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.y)
    1370                             RadInfo.DraggingRect[0].top=MdiInfo[i].MdiRadInfo->ClientPos.y;
    1371                         else RadInfo.DraggingRect[0].top=mouse.y+LEVER_THICK;
    1372                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1373                     }
    1374                     else if(RadInfo.NowDragging==FRAME_LOWER){
    1375                         if(mouse.y-LEVER_THICK-MIN_ITEM_Y<=RadInfo.DraggingRect[0].top)
    1376                             RadInfo.DraggingRect[0].bottom=RadInfo.DraggingRect[0].top+MIN_ITEM_Y;
    1377                         else if((mouse.y>MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
    1378                             RadInfo.DraggingRect[0].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
    1379                         else RadInfo.DraggingRect[0].bottom=mouse.y-LEVER_THICK;
    1380                         DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1381                     }
    1382                     else if(RadInfo.NowDragging==FRAME_INSIDE){
    1383                         i3=0;
    1384                         while(MdiInfo[i].MdiRadInfo->SelectingItem[i3]!=-1){
    1385                             i4=RadInfo.DragStartRect[i3].left+mouse.x-RadInfo.DragStartPos.x;
    1386 
    1387                             if(i4>MdiInfo[i].MdiRadInfo->ClientPos.x){
    1388                                 i4=RadInfo.DragStartRect[i3].right+mouse.x-RadInfo.DragStartPos.x;
    1389                                 if(i4<MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx) i4=0;
    1390                                 else i4-=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
     1282            {
     1283                mouse.x=(int)(short)LOWORD(lParam);
     1284                mouse.y=(int)(short)HIWORD(lParam);
     1285                CursorPos_LocalToGlobal(hwnd,&mouse.x,&mouse.y);
     1286
     1287                hParent=GetParent(hwnd);
     1288                i=GetWndNum(hParent);
     1289                i2 = GetWndInfoNum(MdiInfo[i].path);
     1290                WINDOW_INFO *pWindowInfo = GetWndInfo(MdiInfo[i].path);
     1291
     1292                if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
     1293                    if(wParam&MK_LBUTTON&&RadInfo.NowDragging){
     1294                        ////////////////////////////////////////////////
     1295                        // ドラッグ中の場合(コントロールのサイズ変更)
     1296
     1297                        if(RadInfo.NowDragging==FRAME_UPPER_LEFT){
     1298                            if(RadInfo.DraggingRect[0].right-MIN_ITEM_X<=(mouse.x+LEVER_THICK))
     1299                                RadInfo.DraggingRect[0].left=RadInfo.DraggingRect[0].right-MIN_ITEM_X;
     1300                            else if(mouse.x+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.x)
     1301                                RadInfo.DraggingRect[0].left=MdiInfo[i].MdiRadInfo->ClientPos.x;
     1302                            else RadInfo.DraggingRect[0].left=mouse.x+LEVER_THICK;
     1303
     1304                            if(RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y<=(mouse.y+LEVER_THICK))
     1305                                RadInfo.DraggingRect[0].top=RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y;
     1306                            else if(mouse.y+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.y)
     1307                                RadInfo.DraggingRect[0].top=MdiInfo[i].MdiRadInfo->ClientPos.y;
     1308                            else RadInfo.DraggingRect[0].top=mouse.y+LEVER_THICK;
     1309                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1310                        }
     1311                        else if(RadInfo.NowDragging==FRAME_UPPER_RIGHT){
     1312                            if(mouse.x-LEVER_THICK-MIN_ITEM_X<=RadInfo.DraggingRect[0].left)
     1313                                RadInfo.DraggingRect[0].right=RadInfo.DraggingRect[0].left+MIN_ITEM_X;
     1314                            else if(mouse.x>MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx)
     1315                                RadInfo.DraggingRect[0].right=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
     1316                            else RadInfo.DraggingRect[0].right=mouse.x-LEVER_THICK;
     1317
     1318                            if(RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y<=(mouse.y+LEVER_THICK)) RadInfo.DraggingRect[0].top=RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y;
     1319                            else if(mouse.y+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.y)
     1320                                RadInfo.DraggingRect[0].top=MdiInfo[i].MdiRadInfo->ClientPos.y;
     1321                            else RadInfo.DraggingRect[0].top=mouse.y+LEVER_THICK;
     1322                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1323                        }
     1324                        else if(RadInfo.NowDragging==FRAME_LOWER_LEFT){
     1325                            if(RadInfo.DraggingRect[0].right-MIN_ITEM_X<=(mouse.x+LEVER_THICK))
     1326                                RadInfo.DraggingRect[0].left=RadInfo.DraggingRect[0].right-MIN_ITEM_X;
     1327                            else if(mouse.x+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.x)
     1328                                RadInfo.DraggingRect[0].left=MdiInfo[i].MdiRadInfo->ClientPos.x;
     1329                            else RadInfo.DraggingRect[0].left=mouse.x+LEVER_THICK;
     1330
     1331                            if(mouse.y-LEVER_THICK-MIN_ITEM_Y<=RadInfo.DraggingRect[0].top)
     1332                                RadInfo.DraggingRect[0].bottom=RadInfo.DraggingRect[0].top+MIN_ITEM_Y;
     1333                            else if(mouse.y>MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy)
     1334                                RadInfo.DraggingRect[0].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
     1335                            else RadInfo.DraggingRect[0].bottom=mouse.y-LEVER_THICK;
     1336                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1337                        }
     1338                        else if(RadInfo.NowDragging==FRAME_LOWER_RIGHT){
     1339                            if(mouse.x-LEVER_THICK-MIN_ITEM_X<=RadInfo.DraggingRect[0].left)
     1340                                RadInfo.DraggingRect[0].right=RadInfo.DraggingRect[0].left+MIN_ITEM_X;
     1341                            else if((mouse.x>MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
     1342                                RadInfo.DraggingRect[0].right=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
     1343                            else RadInfo.DraggingRect[0].right=mouse.x-LEVER_THICK;
     1344
     1345                            if(mouse.y-LEVER_THICK-MIN_ITEM_Y<=RadInfo.DraggingRect[0].top)
     1346                                RadInfo.DraggingRect[0].bottom=RadInfo.DraggingRect[0].top+MIN_ITEM_Y;
     1347                            else if((mouse.y>MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
     1348                                RadInfo.DraggingRect[0].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
     1349                            else RadInfo.DraggingRect[0].bottom=mouse.y-LEVER_THICK;
     1350                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1351                        }
     1352                        else if(RadInfo.NowDragging==FRAME_LEFT){
     1353                            if(RadInfo.DraggingRect[0].right-MIN_ITEM_X<=(mouse.x+LEVER_THICK))
     1354                                RadInfo.DraggingRect[0].left=RadInfo.DraggingRect[0].right-MIN_ITEM_X;
     1355                            else if(mouse.x+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.x)
     1356                                RadInfo.DraggingRect[0].left=MdiInfo[i].MdiRadInfo->ClientPos.x;
     1357                            else RadInfo.DraggingRect[0].left=mouse.x+LEVER_THICK;
     1358                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1359                        }
     1360                        else if(RadInfo.NowDragging==FRAME_RIGHT){
     1361                            if(mouse.x-LEVER_THICK-MIN_ITEM_X<=RadInfo.DraggingRect[0].left)
     1362                                RadInfo.DraggingRect[0].right=RadInfo.DraggingRect[0].left+MIN_ITEM_X;
     1363                            else if((mouse.x>MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
     1364                                RadInfo.DraggingRect[0].right=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
     1365                            else RadInfo.DraggingRect[0].right=mouse.x-LEVER_THICK;
     1366                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1367                        }
     1368                        else if(RadInfo.NowDragging==FRAME_UPPER){
     1369                            if(RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y<=(mouse.y+LEVER_THICK))
     1370                                RadInfo.DraggingRect[0].top=RadInfo.DraggingRect[0].bottom-MIN_ITEM_Y;
     1371                            else if(mouse.y+LEVER_THICK<MdiInfo[i].MdiRadInfo->ClientPos.y)
     1372                                RadInfo.DraggingRect[0].top=MdiInfo[i].MdiRadInfo->ClientPos.y;
     1373                            else RadInfo.DraggingRect[0].top=mouse.y+LEVER_THICK;
     1374                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1375                        }
     1376                        else if(RadInfo.NowDragging==FRAME_LOWER){
     1377                            if(mouse.y-LEVER_THICK-MIN_ITEM_Y<=RadInfo.DraggingRect[0].top)
     1378                                RadInfo.DraggingRect[0].bottom=RadInfo.DraggingRect[0].top+MIN_ITEM_Y;
     1379                            else if((mouse.y>MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy)&&MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW)
     1380                                RadInfo.DraggingRect[0].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
     1381                            else RadInfo.DraggingRect[0].bottom=mouse.y-LEVER_THICK;
     1382                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1383                        }
     1384                        else if(RadInfo.NowDragging==FRAME_INSIDE){
     1385                            i3=0;
     1386                            while(MdiInfo[i].MdiRadInfo->SelectingItem[i3]!=-1){
     1387                                i4=RadInfo.DragStartRect[i3].left+mouse.x-RadInfo.DragStartPos.x;
     1388
     1389                                if(i4>MdiInfo[i].MdiRadInfo->ClientPos.x){
     1390                                    i4=RadInfo.DragStartRect[i3].right+mouse.x-RadInfo.DragStartPos.x;
     1391                                    if(i4<MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx) i4=0;
     1392                                    else i4-=MdiInfo[i].MdiRadInfo->ClientPos.x+MdiInfo[i].MdiRadInfo->ClientSize.cx;
     1393                                }
     1394                                else i4-=MdiInfo[i].MdiRadInfo->ClientPos.x;
     1395                                //i4は枠外に出たときのポインタと壁にあたったコントロールとの差
     1396                                RadInfo.DraggingRect[i3].left=RadInfo.DragStartRect[i3].left+mouse.x-RadInfo.DragStartPos.x-i4;
     1397                                RadInfo.DraggingRect[i3].right=RadInfo.DragStartRect[i3].right+mouse.x-RadInfo.DragStartPos.x-i4;
     1398
     1399                                i4=RadInfo.DragStartRect[i3].top+mouse.y-RadInfo.DragStartPos.y;
     1400                                if(i4>MdiInfo[i].MdiRadInfo->ClientPos.y){
     1401                                    i4=RadInfo.DragStartRect[i3].bottom+mouse.y-RadInfo.DragStartPos.y;
     1402                                    if(i4<MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy) i4=0;
     1403                                    else i4-=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
     1404                                }
     1405                                else i4-=MdiInfo[i].MdiRadInfo->ClientPos.y;
     1406                                RadInfo.DraggingRect[i3].top=RadInfo.DragStartRect[i3].top+mouse.y-RadInfo.DragStartPos.y-i4;
     1407                                RadInfo.DraggingRect[i3].bottom=RadInfo.DragStartRect[i3].bottom+mouse.y-RadInfo.DragStartPos.y-i4;
     1408
     1409                                if(MdiInfo[i].MdiRadInfo->SelectingItem[1]==-1) i4=1;
     1410                                else i4=0;
     1411                                DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[i3],&RadInfo.OldDraggingRect[i3],i4);
     1412                                i3++;
    13911413                            }
    1392                             else i4-=MdiInfo[i].MdiRadInfo->ClientPos.x;
    1393                             //i4は枠外に出たときのポインタと壁にあたったコントロールとの差
    1394                             RadInfo.DraggingRect[i3].left=RadInfo.DragStartRect[i3].left+mouse.x-RadInfo.DragStartPos.x-i4;
    1395                             RadInfo.DraggingRect[i3].right=RadInfo.DragStartRect[i3].right+mouse.x-RadInfo.DragStartPos.x-i4;
    1396 
    1397                             i4=RadInfo.DragStartRect[i3].top+mouse.y-RadInfo.DragStartPos.y;
    1398                             if(i4>MdiInfo[i].MdiRadInfo->ClientPos.y){
    1399                                 i4=RadInfo.DragStartRect[i3].bottom+mouse.y-RadInfo.DragStartPos.y;
    1400                                 if(i4<MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy) i4=0;
    1401                                 else i4-=MdiInfo[i].MdiRadInfo->ClientPos.y+MdiInfo[i].MdiRadInfo->ClientSize.cy;
    1402                             }
    1403                             else i4-=MdiInfo[i].MdiRadInfo->ClientPos.y;
    1404                             RadInfo.DraggingRect[i3].top=RadInfo.DragStartRect[i3].top+mouse.y-RadInfo.DragStartPos.y-i4;
    1405                             RadInfo.DraggingRect[i3].bottom=RadInfo.DragStartRect[i3].bottom+mouse.y-RadInfo.DragStartPos.y-i4;
    1406 
    1407                             if(MdiInfo[i].MdiRadInfo->SelectingItem[1]==-1) i4=1;
    1408                             else i4=0;
    1409                             DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[i3],&RadInfo.OldDraggingRect[i3],i4);
    1410                             i3++;
    1411                         }
    1412                     }
    1413                     else if(RadInfo.NowDragging==SELECTING_FRAME){
    1414                         RadInfo.DraggingRect[0].left=RadInfo.DragStartPos.x;
    1415                         RadInfo.DraggingRect[0].top=RadInfo.DragStartPos.y;
     1414                        }
     1415                        else if(RadInfo.NowDragging==SELECTING_FRAME){
     1416                            RadInfo.DraggingRect[0].left=RadInfo.DragStartPos.x;
     1417                            RadInfo.DraggingRect[0].top=RadInfo.DragStartPos.y;
     1418                            RadInfo.DraggingRect[0].right=mouse.x;
     1419                            RadInfo.DraggingRect[0].bottom=mouse.y;
     1420                            DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
     1421                        }
     1422                        SetCursorByState(RadInfo.NowDragging);
     1423
     1424                        SetStatusText(NULL);
     1425
     1426                        //サポートダイアログの内容をセット
     1427                        SetSupportDlgData( i, *pWindowInfo );
     1428                    }
     1429                    else{
     1430                        //ドラッグ中でないとき
     1431                        SetCursorByState(GetStateOfDraggingFrame(i,i2,mouse.x,mouse.y));
     1432                    }
     1433                }
     1434                else{
     1435                    //アイテム(子ウィンドウ作成中)
     1436                    if(wParam&MK_LBUTTON&&RadInfo.NowDragging==ITEM_MAKING){
     1437                        //ドラッグ中の場合
     1438
    14161439                        RadInfo.DraggingRect[0].right=mouse.x;
    14171440                        RadInfo.DraggingRect[0].bottom=mouse.y;
    14181441                        DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    14191442                    }
    1420                     SetCursorByState(RadInfo.NowDragging);
    1421 
    1422                     SetStatusText(NULL);
    1423 
    1424                     //サポートダイアログの内容をセット
    1425                     SetSupportDlgData(i,i2);
    14261443                }
    1427                 else{
    1428                     //ドラッグ中でないとき
    1429                     SetCursorByState(GetStateOfDraggingFrame(i,i2,mouse.x,mouse.y));
    1430                 }
     1444                return 0;
    14311445            }
    1432             else{
    1433                 //アイテム(子ウィンドウ作成中)
    1434                 if(wParam&MK_LBUTTON&&RadInfo.NowDragging==ITEM_MAKING){
    1435                     //ドラッグ中の場合
    1436 
    1437                     RadInfo.DraggingRect[0].right=mouse.x;
    1438                     RadInfo.DraggingRect[0].bottom=mouse.y;
    1439                     DrawFrame(hwnd,i,i2,&RadInfo.DraggingRect[0],&RadInfo.OldDraggingRect[0],0);
    1440                 }
    1441             }
    1442             return 0;
    14431446        case WM_LBUTTONDBLCLK:
    14441447            {
     
    14771480                hParent=GetParent(hwnd);
    14781481                i=GetWndNum(hParent);
    1479                 i2=GetWndInfoNum(MdiInfo[i].path);
    14801482                WINDOW_INFO *pWindowInfo = GetWndInfo(MdiInfo[i].path);
    14811483                if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
     
    15021504
    15031505                                //サポートダイアログの内容をセット
    1504                                 SetSupportDlgData(i,i2);
     1506                                SetSupportDlgData( i, *pWindowInfo );
    15051507                            }
    15061508                        }
     
    15281530
    15291531                            //サポートダイアログの内容をセット
    1530                             SetSupportDlgData(i,i2);
     1532                            SetSupportDlgData( i, *pWindowInfo );
    15311533                        }
    15321534                        else if(wParam==VK_LEFT){
     
    15491551
    15501552                            //サポートダイアログの内容をセット
    1551                             SetSupportDlgData(i,i2);
     1553                            SetSupportDlgData( i, *pWindowInfo );
    15521554                        }
    15531555                        else if(wParam==VK_UP){
     
    15701572
    15711573                            //サポートダイアログの内容をセット
    1572                             SetSupportDlgData(i,i2);
     1574                            SetSupportDlgData( i, *pWindowInfo );
    15731575                        }
    15741576                        else if(wParam==VK_DOWN){
     
    15911593
    15921594                            //サポートダイアログの内容をセット
    1593                             SetSupportDlgData(i,i2);
     1595                            SetSupportDlgData( i, *pWindowInfo );
    15941596                        }
    15951597                        else if(wParam==VK_DELETE)
  • trunk/ab5.0/abdev/abdev/RadSupport.cpp

    r609 r612  
    172172}
    173173
    174 void SetSupportDlgData(int WndNum,int WndInfoNum){
     174void SetSupportDlgData(int WndNum, const WINDOW_INFO &windowInfo )
     175{
    175176    ////////////////////////////////////
    176177    // サポートダイアログの内容をセット
     
    186187    hSupport=MdiInfo[WndNum].MdiRadInfo->hSupport;
    187188
    188     WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
    189 
    190189    if(RadInfo.NowDragging>=FRAME_CHANGEPOS_START&&RadInfo.NowDragging<=FRAME_CHANGEPOS_END&&
    191190        (!(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]!=-1&&MdiInfo[WndNum].MdiRadInfo->SelectingItem[1]!=-1))){
     
    213212        SetDlgItemText(hSupport,IDC_YPOS,"");
    214213
    215         sprintf(temporary,"%d",pWindowInfo->size.cx);
     214        sprintf(temporary,"%d",windowInfo.size.cx);
    216215        SetDlgItemText(hSupport,IDC_WIDTH,temporary);
    217216
    218         sprintf(temporary,"%d",pWindowInfo->size.cy);
     217        sprintf(temporary,"%d",windowInfo.size.cy);
    219218        SetDlgItemText(hSupport,IDC_HEIGHT,temporary);
    220219    }
     
    240239            EnableWindow(GetDlgItem(hSupport,IDC_SPIN4),1);
    241240
    242             sprintf(temporary,"%d",pWindowInfo->pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.x);
     241            sprintf(temporary,"%d",windowInfo.pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.x);
    243242            SetDlgItemText(hSupport,IDC_XPOS,temporary);
    244243
    245             sprintf(temporary,"%d",pWindowInfo->pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.y);
     244            sprintf(temporary,"%d",windowInfo.pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.y);
    246245            SetDlgItemText(hSupport,IDC_YPOS,temporary);
    247246
    248             sprintf(temporary,"%d",pWindowInfo->pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].size.cx);
     247            sprintf(temporary,"%d",windowInfo.pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].size.cx);
    249248            SetDlgItemText(hSupport,IDC_WIDTH,temporary);
    250249
    251             sprintf(temporary,"%d",pWindowInfo->pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].size.cy);
     250            sprintf(temporary,"%d",windowInfo.pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].size.cy);
    252251            SetDlgItemText(hSupport,IDC_HEIGHT,temporary);
    253252        }
  • trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp

    r609 r612  
    161161
    162162            //サポートダイアログの内容をセット
    163             SetSupportDlgData(WndNum,WndInfoNum);
     163            SetSupportDlgData( WndNum, *pWindowInfo );
    164164            break;
    165165        case RAD_UNDO_IMAGESTATE:
     
    346346
    347347            //サポートダイアログの内容をセット
    348             SetSupportDlgData(WndNum,WndInfoNum);
     348            SetSupportDlgData( WndNum, *pWindowInfo );
    349349            break;
    350350        case RAD_UNDO_IMAGESTATE:
  • trunk/ab5.0/abdev/abdev/WindowControl.cpp

    r609 r612  
    1515int GetWndInfoNum(char *name){
    1616    extern PROJECTINFO ProjectInfo;
    17     int i;
    18     for(i=0;i<ProjectInfo.windowInfos.size();i++){
     17    for( int i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
    1918        if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return i;
    2019    }
     
    2423{
    2524    extern PROJECTINFO ProjectInfo;
    26     int i;
    27     for( int i=0;i<ProjectInfo.windowInfos.size();i++)
     25    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
    2826    {
    29         if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return &ProjectInfo.windowInfos[i];
     27        if(lstrcmpi(name,windowInfo.name)==0) return &windowInfo;
    3028    }
    3129    return NULL;
     
    10081006
    10091007    ppNames=(char **)HeapAlloc(hHeap,0,1);
    1010     for(i=0,i4=1000,i5=0;i<ProjectInfo.windowInfos.size();i++){
    1011         for(i3=0;i3<ProjectInfo.windowInfos[i].NumberOfChildWindows;i3++){
     1008    i4=1000;
     1009    i5=0;
     1010    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1011    {
     1012        for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
    10121013
    10131014            //重複チェック
    10141015            for(i6=0,sw1=0;i6<i5;i6++){
    1015                 if(lstrcmpi(ppNames[i6],ProjectInfo.windowInfos[i].pChildInfo[i3].IdName)==0){
     1016                if(lstrcmpi(ppNames[i6],windowInfo.pChildInfo[i3].IdName)==0){
    10161017                    sw1=1;
    10171018                    break;
     
    10211022
    10221023            ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1));
    1023             ppNames[i5]=ProjectInfo.windowInfos[i].pChildInfo[i3].IdName;
     1024            ppNames[i5]=windowInfo.pChildInfo[i3].IdName;
    10241025            i5++;
    10251026
    1026             sprintf(buffer+i2,"Const %s=%d\r\n",ProjectInfo.windowInfos[i].pChildInfo[i3].IdName,i4);
     1027            sprintf(buffer+i2,"Const %s=%d\r\n",windowInfo.pChildInfo[i3].IdName,i4);
    10271028            i2+=lstrlen(buffer+i2);
    10281029            i4++;
     
    10441045
    10451046    //ハンドル変数を定義
    1046     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1047         sprintf(buffer+i2,"Dim %s As HWND\r\n",ProjectInfo.windowInfos[i].HandleName);
    1048         i2+=lstrlen(buffer+i2);
    1049         sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",ProjectInfo.windowInfos[i].name);
     1047    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1048    {
     1049        sprintf(buffer+i2,"Dim %s As HWND\r\n",windowInfo.HandleName);
     1050        i2+=lstrlen(buffer+i2);
     1051        sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",windowInfo.name);
    10501052        i2+=lstrlen(buffer+i2);
    10511053        sprintf(buffer+i2,"hFont_%s=CreateFont(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\")\r\n",
    1052             ProjectInfo.windowInfos[i].name,
    1053             ProjectInfo.windowInfos[i].LogFont.lfHeight,
    1054             ProjectInfo.windowInfos[i].LogFont.lfWidth,
    1055             ProjectInfo.windowInfos[i].LogFont.lfEscapement,
    1056             ProjectInfo.windowInfos[i].LogFont.lfOrientation,
    1057             ProjectInfo.windowInfos[i].LogFont.lfWeight,
    1058             ProjectInfo.windowInfos[i].LogFont.lfItalic,
    1059             ProjectInfo.windowInfos[i].LogFont.lfUnderline,
    1060             ProjectInfo.windowInfos[i].LogFont.lfStrikeOut,
    1061             ProjectInfo.windowInfos[i].LogFont.lfCharSet,
    1062             ProjectInfo.windowInfos[i].LogFont.lfOutPrecision,
    1063             ProjectInfo.windowInfos[i].LogFont.lfClipPrecision,
    1064             ProjectInfo.windowInfos[i].LogFont.lfQuality,
    1065             ProjectInfo.windowInfos[i].LogFont.lfPitchAndFamily,
    1066             ProjectInfo.windowInfos[i].LogFont.lfFaceName);
     1054            windowInfo.name,
     1055            windowInfo.LogFont.lfHeight,
     1056            windowInfo.LogFont.lfWidth,
     1057            windowInfo.LogFont.lfEscapement,
     1058            windowInfo.LogFont.lfOrientation,
     1059            windowInfo.LogFont.lfWeight,
     1060            windowInfo.LogFont.lfItalic,
     1061            windowInfo.LogFont.lfUnderline,
     1062            windowInfo.LogFont.lfStrikeOut,
     1063            windowInfo.LogFont.lfCharSet,
     1064            windowInfo.LogFont.lfOutPrecision,
     1065            windowInfo.LogFont.lfClipPrecision,
     1066            windowInfo.LogFont.lfQuality,
     1067            windowInfo.LogFont.lfPitchAndFamily,
     1068            windowInfo.LogFont.lfFaceName);
    10671069        i2+=lstrlen(buffer+i2);
    10681070
     
    10781080    lstrcpy(buffer+i2,"h3DFaceBrush=CreateSolidBrush(GetSysColor(COLOR_3DFACE))\r\n");
    10791081    i2+=lstrlen(buffer+i2);
    1080     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1081         if(ProjectInfo.windowInfos[i].bgColor<=0&&
    1082             ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(255,255,255)&&
    1083             ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(0,0,0)){
     1082    i=0;
     1083    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1084    {
     1085        if(windowInfo.bgColor<=0&&
     1086            windowInfo.bgColor!=-(int)RGB(255,255,255)&&
     1087            windowInfo.bgColor!=-(int)RGB(0,0,0)){
    10841088                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10851089                i2+=lstrlen(buffer+i2);
    1086                 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-ProjectInfo.windowInfos[i].bgColor);
     1090                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-windowInfo.bgColor);
    10871091                i2+=lstrlen(buffer+i2);
    10881092        }
    1089         if(ProjectInfo.windowInfos[i].bgColor>=0x1000){
     1093        if(windowInfo.bgColor>=0x1000){
    10901094                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10911095                i2+=lstrlen(buffer+i2);
    10921096                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n",
    10931097                    i,
    1094                     ProjectInfo.res.pBitmapResInfo[ProjectInfo.windowInfos[i].bgColor-0x1000].IdName);
     1098                    ProjectInfo.res.pBitmapResInfo[windowInfo.bgColor-0x1000].IdName);
    10951099                i2+=lstrlen(buffer+i2);
    10961100        }
     1101
     1102        i++;
    10971103    }
    10981104
     
    11011107
    11021108    //イメージ ボックス用の変数を定義
    1103     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1104         for(i3=0;i3<ProjectInfo.windowInfos[i].NumberOfChildWindows;i3++){
    1105             if(ProjectInfo.windowInfos[i].pChildInfo[i3].Control==CT_IMAGEBOX){
    1106                 if((ProjectInfo.windowInfos[i].pChildInfo[i3].style&0x000F)==SS_ICON||
    1107                     (ProjectInfo.windowInfos[i].pChildInfo[i3].style&0x000F)==SS_BITMAP){
    1108                     sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",ProjectInfo.windowInfos[i].name,ProjectInfo.windowInfos[i].pChildInfo[i3].IdName);
     1109    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1110    {
     1111        for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
     1112            if(windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){
     1113                if((windowInfo.pChildInfo[i3].style&0x000F)==SS_ICON||
     1114                    (windowInfo.pChildInfo[i3].style&0x000F)==SS_BITMAP){
     1115                    sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",windowInfo.name,windowInfo.pChildInfo[i3].IdName);
    11091116                    i2+=lstrlen(buffer+i2);
    11101117
     
    11541161    }
    11551162
    1156     for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1163    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1164    {
    11571165        //フォントハンドル解放
    1158         sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",ProjectInfo.windowInfos[i].name);
     1166        sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",windowInfo.name);
    11591167        i2+=lstrlen(buffer+i2);
    11601168
     
    11681176    lstrcpy(buffer+i2,"\tDeleteObject(h3DFaceBrush)\r\n");
    11691177    i2+=lstrlen(buffer+i2);
    1170     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1171         if(ProjectInfo.windowInfos[i].bgColor<=0&&
    1172             ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(255,255,255)&&
    1173             ProjectInfo.windowInfos[i].bgColor!=-(int)RGB(0,0,0)){
     1178    i=0;
     1179    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1180    {
     1181        if(windowInfo.bgColor<=0&&
     1182            windowInfo.bgColor!=-(int)RGB(255,255,255)&&
     1183            windowInfo.bgColor!=-(int)RGB(0,0,0)){
    11741184                sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i);
    11751185                i2+=lstrlen(buffer+i2);
    11761186        }
     1187        i++;
    11771188    }
    11781189
     
    11841195
    11851196
    1186     for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1197    i=0;
     1198    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1199    {
    11871200        if(i!=0){
    11881201            lstrcpy(buffer+i2,"\r\n");
     
    11971210        ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]);
    11981211
    1199         sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",ProjectInfo.windowInfos[i].name);
     1212        sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",windowInfo.name);
    12001213        i2+=lstrlen(buffer+i2);
    12011214
     
    12351248            i2+=lstrlen(buffer+i2);
    12361249            if(sw4){
    1237                 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name);
     1250                sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",windowInfo.name);
    12381251                i2+=lstrlen(buffer+i2);
    12391252            }
     
    12451258            i2+=lstrlen(buffer+i2);
    12461259
    1247             if(GetNotifyCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t")){
     1260            if(GetNotifyCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){
    12481261                i2+=lstrlen(buffer+i2);
    12491262
     
    12611274            lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n");
    12621275            i2+=lstrlen(buffer+i2);
    1263             sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name);
     1276            sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",windowInfo.name);
    12641277            i2+=lstrlen(buffer+i2);
    12651278        }
     
    12731286
    12741287            //pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う
    1275             GetCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t");
     1288            GetCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");
    12761289            i2+=lstrlen(buffer+i2);
    12771290
     
    12841297        lstrcpy(buffer+i2,"\t\tCase Else\r\n");
    12851298        i2+=lstrlen(buffer+i2);
    1286         sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",ProjectInfo.windowInfos[i].name);
     1299        sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",windowInfo.name);
    12871300        i2+=lstrlen(buffer+i2);
    12881301        lstrcpy(buffer+i2,"\t\t\tExit Function\r\n");
     
    12921305        i2+=lstrlen(buffer+i2);
    12931306
    1294         sprintf(buffer+i2,"\tEventCall_%s=0\r\n",ProjectInfo.windowInfos[i].name);
     1307        sprintf(buffer+i2,"\tEventCall_%s=0\r\n",windowInfo.name);
    12951308        i2+=lstrlen(buffer+i2);
    12961309        lstrcpy(buffer+i2,"End Function\r\n");
     
    13011314            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    13021315        }
     1316
     1317        i++;
    13031318    }
    13041319
     
    13441359    lstrcpy(buffer+i2,"\tDim hDlg As HWND\r\n");
    13451360    i2+=lstrlen(buffer+i2);
    1346     for(i=0,sw1=0;i<ProjectInfo.windowInfos.size();i++){
    1347         if(ProjectInfo.windowInfos[i].type==WNDTYPE_MODALDLG){
     1361    sw1=0;
     1362    i=0;
     1363    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1364    {
     1365        if(windowInfo.type==WNDTYPE_MODALDLG){
    13481366            if(sw1==0){
    1349                 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
     1367                sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
    13501368                i2+=lstrlen(buffer+i2);
    13511369                sw1=1;
    13521370            }
    13531371            else{
    1354                 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
     1372                sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
    13551373                i2+=lstrlen(buffer+i2);
    13561374            }
    13571375            sprintf(buffer+i2,"\t\t%s=CreateWindowEx(&H%08x,\"NORMALDLG\",\"%s\",&H%08x,%d,%d,%d,%d,hOwnerWnd,%d As HMENU,GetModuleHandle(0),0)\r\n",
    1358                 ProjectInfo.windowInfos[i].HandleName,
    1359                 ProjectInfo.windowInfos[i].ExStyle,
    1360                 ProjectInfo.windowInfos[i].caption,
    1361                 ProjectInfo.windowInfos[i].style,
    1362                 ProjectInfo.windowInfos[i].pos.x,
    1363                 ProjectInfo.windowInfos[i].pos.y,
    1364                 ProjectInfo.windowInfos[i].size.cx,
    1365                 ProjectInfo.windowInfos[i].size.cy,
    1366                 ProjectInfo.windowInfos[i].id);
     1376                windowInfo.HandleName,
     1377                windowInfo.ExStyle,
     1378                windowInfo.caption,
     1379                windowInfo.style,
     1380                windowInfo.pos.x,
     1381                windowInfo.pos.y,
     1382                windowInfo.size.cx,
     1383                windowInfo.size.cy,
     1384                windowInfo.id);
    13671385            i2+=lstrlen(buffer+i2);
    13681386            sprintf(buffer+i2,"\t\thDlg=%s\r\n",
    1369                 ProjectInfo.windowInfos[i].HandleName);
     1387                windowInfo.HandleName);
    13701388            i2+=lstrlen(buffer+i2);
    13711389            if(bAvailUserProc[i]){
    13721390                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    1373                     ProjectInfo.windowInfos[i].HandleName,
    1374                     ProjectInfo.windowInfos[i].CallBackName);
     1391                    windowInfo.HandleName,
     1392                    windowInfo.CallBackName);
    13751393            }
    13761394            else{
    13771395                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
    1378                     ProjectInfo.windowInfos[i].HandleName,
    1379                     ProjectInfo.windowInfos[i].name);
    1380             }
    1381             i2+=lstrlen(buffer+i2);
    1382             sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",ProjectInfo.windowInfos[i].HandleName);
    1383             i2+=lstrlen(buffer+i2);
    1384             if(ProjectInfo.windowInfos[i].IconResName){
    1385                 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",ProjectInfo.windowInfos[i].HandleName,ProjectInfo.windowInfos[i].IconResName);
     1396                    windowInfo.HandleName,
     1397                    windowInfo.name);
     1398            }
     1399            i2+=lstrlen(buffer+i2);
     1400            sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",windowInfo.HandleName);
     1401            i2+=lstrlen(buffer+i2);
     1402            if(windowInfo.IconResName){
     1403                sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",windowInfo.HandleName,windowInfo.IconResName);
    13861404                i2+=lstrlen(buffer+i2);
    13871405            }
    1388             sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",ProjectInfo.windowInfos[i].HandleName);
     1406            sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",windowInfo.HandleName);
    13891407            i2+=lstrlen(buffer+i2);
    13901408        }
     
    13931411            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    13941412        }
     1413        i++;
    13951414    }
    13961415    if(sw1){
     
    14401459    lstrcpy(buffer+i2,"\r\nFunction CreateDialog(hOwnerWnd As HWND, TemplateName As LPSTR) As HWND\r\n");
    14411460    i2+=lstrlen(buffer+i2);
    1442     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1443         if(ProjectInfo.windowInfos[i].type==WNDTYPE_MODELESSDLG){
    1444             sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
     1461    i=0;
     1462    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1463    {
     1464        if(windowInfo.type==WNDTYPE_MODELESSDLG){
     1465            sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
    14451466            i2+=lstrlen(buffer+i2);
    14461467
    14471468            sprintf(buffer+i2,"\t\t%s=CreateWindowEx(&H%08x,\"NORMALDLG\",\"%s\",&H%08x,%d,%d,%d,%d,hOwnerWnd,%d As HMENU,GetModuleHandle(0),0)\r\n",
    1448                 ProjectInfo.windowInfos[i].HandleName,
    1449                 ProjectInfo.windowInfos[i].ExStyle,
    1450                 ProjectInfo.windowInfos[i].caption,
    1451                 ProjectInfo.windowInfos[i].style,
    1452                 ProjectInfo.windowInfos[i].pos.x,
    1453                 ProjectInfo.windowInfos[i].pos.y,
    1454                 ProjectInfo.windowInfos[i].size.cx,
    1455                 ProjectInfo.windowInfos[i].size.cy,
    1456                 ProjectInfo.windowInfos[i].id);
    1457             i2+=lstrlen(buffer+i2);
    1458             sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",ProjectInfo.windowInfos[i].HandleName);
     1469                windowInfo.HandleName,
     1470                windowInfo.ExStyle,
     1471                windowInfo.caption,
     1472                windowInfo.style,
     1473                windowInfo.pos.x,
     1474                windowInfo.pos.y,
     1475                windowInfo.size.cx,
     1476                windowInfo.size.cy,
     1477                windowInfo.id);
     1478            i2+=lstrlen(buffer+i2);
     1479            sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",windowInfo.HandleName);
    14591480            i2+=lstrlen(buffer+i2);
    14601481            if(bAvailUserProc[i]){
    14611482                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    1462                     ProjectInfo.windowInfos[i].HandleName,
    1463                     ProjectInfo.windowInfos[i].CallBackName);
     1483                    windowInfo.HandleName,
     1484                    windowInfo.CallBackName);
    14641485            }
    14651486            else{
    14661487                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
    1467                     ProjectInfo.windowInfos[i].HandleName,
    1468                     ProjectInfo.windowInfos[i].name);
    1469             }
    1470             i2+=lstrlen(buffer+i2);
    1471             sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",ProjectInfo.windowInfos[i].HandleName);
    1472             i2+=lstrlen(buffer+i2);
    1473             if(ProjectInfo.windowInfos[i].IconResName){
    1474                 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",ProjectInfo.windowInfos[i].HandleName,ProjectInfo.windowInfos[i].IconResName);
     1488                    windowInfo.HandleName,
     1489                    windowInfo.name);
     1490            }
     1491            i2+=lstrlen(buffer+i2);
     1492            sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",windowInfo.HandleName);
     1493            i2+=lstrlen(buffer+i2);
     1494            if(windowInfo.IconResName){
     1495                sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",windowInfo.HandleName,windowInfo.IconResName);
    14751496                i2+=lstrlen(buffer+i2);
    14761497            }
    1477             sprintf(buffer+i2,"\tEnd If\r\n",ProjectInfo.windowInfos[i].name);
     1498            sprintf(buffer+i2,"\tEnd If\r\n",windowInfo.name);
    14781499            i2+=lstrlen(buffer+i2);
    14791500        }
     
    14821503            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    14831504        }
     1505        i++;
    14841506    }
    14851507    lstrcpy(buffer+i2,"End Function\r\n");
     
    15101532    i2+=lstrlen(buffer+i2);
    15111533
    1512     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1513         if(ProjectInfo.windowInfos[i].type==WNDTYPE_DEFAULT){
     1534    i=0;
     1535    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1536    {
     1537        if(windowInfo.type==WNDTYPE_DEFAULT){
    15141538            //////////////////////
    15151539            //通常ウィンドウ作成
     
    15181542            i2+=2;
    15191543
    1520             if(ProjectInfo.windowInfos[i].IconResName==0){
     1544            if(windowInfo.IconResName==0){
    15211545                lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n");
    15221546                i2+=lstrlen(buffer+i2);
     
    15251549            }
    15261550            else{
    1527                 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName);
     1551                sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",windowInfo.IconResName);
    15281552                i2+=lstrlen(buffer+i2);
    1529                 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName);
     1553                sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",windowInfo.IconResName);
    15301554                i2+=lstrlen(buffer+i2);
    15311555            }
     
    15341558            i2+=lstrlen(buffer+i2);
    15351559            if(bAvailUserProc[i])
    1536                 sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",ProjectInfo.windowInfos[i].CallBackName);
    1537             else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",ProjectInfo.windowInfos[i].name);
    1538             i2+=lstrlen(buffer+i2);
    1539             if(ProjectInfo.windowInfos[i].bgColor==COLOR_3DFACE)
     1560                sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",windowInfo.CallBackName);
     1561            else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",windowInfo.name);
     1562            i2+=lstrlen(buffer+i2);
     1563            if(windowInfo.bgColor==COLOR_3DFACE)
    15401564                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=h3DFaceBrush\r\n");
    1541             else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(255,255,255))
     1565            else if(windowInfo.bgColor==-(int)RGB(255,255,255))
    15421566                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(WHITE_BRUSH)\r\n");
    1543             else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(0,0,0))
     1567            else if(windowInfo.bgColor==-(int)RGB(0,0,0))
    15441568                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(BLACK_BRUSH)\r\n");
    1545             else if(ProjectInfo.windowInfos[i].bgColor<=0||
    1546                 ProjectInfo.windowInfos[i].bgColor>=0x1000){
     1569            else if(windowInfo.bgColor<=0||
     1570                windowInfo.bgColor>=0x1000){
    15471571                //色指定またはビットマップ
    15481572                sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i);
     
    15521576            i2+=lstrlen(buffer+i2);
    15531577            sprintf(buffer+i2,"CreateWindowEx(&H%08x,\"%s%d\",\"%s\",&H%08x,%d,%d,%d,%d,0,0,GetModuleHandle(0),0)\r\n",
    1554                 ProjectInfo.windowInfos[i].ExStyle,
    1555                 ProjectInfo.windowInfos[i].ClassName,i,
    1556                 ProjectInfo.windowInfos[i].caption,
    1557                 ProjectInfo.windowInfos[i].style,
    1558                 ProjectInfo.windowInfos[i].pos.x,
    1559                 ProjectInfo.windowInfos[i].pos.y,
    1560                 ProjectInfo.windowInfos[i].size.cx,
    1561                 ProjectInfo.windowInfos[i].size.cy);
     1578                windowInfo.ExStyle,
     1579                windowInfo.ClassName,i,
     1580                windowInfo.caption,
     1581                windowInfo.style,
     1582                windowInfo.pos.x,
     1583                windowInfo.pos.y,
     1584                windowInfo.size.cx,
     1585                windowInfo.size.cy);
    15621586            i2+=lstrlen(buffer+i2);
    15631587        }
     
    15671591            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    15681592        }
     1593
     1594        i++;
    15691595    }
    15701596
     
    16121638    size=2;
    16131639    buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size);
    1614     for(i=0,i2=0;i<windowInfos.size();i++){
    1615         sprintf(buffer+i2,"WINDOW:%s\r\n",windowInfos[i].name);
    1616         i2+=lstrlen(buffer+i2);
    1617         sprintf(buffer+i2,"    HANDLE    = %s\r\n",windowInfos[i].HandleName);
    1618         i2+=lstrlen(buffer+i2);
    1619         sprintf(buffer+i2,"    POINT     = %d,%d\r\n",windowInfos[i].pos.x,windowInfos[i].pos.y);
    1620         i2+=lstrlen(buffer+i2);
    1621         sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",windowInfos[i].size.cx,windowInfos[i].size.cy);
    1622         i2+=lstrlen(buffer+i2);
    1623         sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",windowInfos[i].caption);
    1624         i2+=lstrlen(buffer+i2);
    1625         sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",windowInfos[i].style);
    1626         i2+=lstrlen(buffer+i2);
    1627         sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",windowInfos[i].ExStyle);
    1628         i2+=lstrlen(buffer+i2);
    1629         if(windowInfos[i].MenuID){
    1630             sprintf(buffer+i2,"    MENUID    = %s\r\n",windowInfos[i].MenuID);
    1631             i2+=lstrlen(buffer+i2);
    1632         }
    1633         sprintf(buffer+i2,"    ID        = %d\r\n",windowInfos[i].id);
    1634         i2+=lstrlen(buffer+i2);
    1635         sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",windowInfos[i].bgColor);
     1640    i2=0;
     1641    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1642    {
     1643        sprintf(buffer+i2,"WINDOW:%s\r\n",windowInfo.name);
     1644        i2+=lstrlen(buffer+i2);
     1645        sprintf(buffer+i2,"    HANDLE    = %s\r\n",windowInfo.HandleName);
     1646        i2+=lstrlen(buffer+i2);
     1647        sprintf(buffer+i2,"    POINT     = %d,%d\r\n",windowInfo.pos.x,windowInfo.pos.y);
     1648        i2+=lstrlen(buffer+i2);
     1649        sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",windowInfo.size.cx,windowInfo.size.cy);
     1650        i2+=lstrlen(buffer+i2);
     1651        sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",windowInfo.caption);
     1652        i2+=lstrlen(buffer+i2);
     1653        sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",windowInfo.style);
     1654        i2+=lstrlen(buffer+i2);
     1655        sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",windowInfo.ExStyle);
     1656        i2+=lstrlen(buffer+i2);
     1657        if(windowInfo.MenuID){
     1658            sprintf(buffer+i2,"    MENUID    = %s\r\n",windowInfo.MenuID);
     1659            i2+=lstrlen(buffer+i2);
     1660        }
     1661        sprintf(buffer+i2,"    ID        = %d\r\n",windowInfo.id);
     1662        i2+=lstrlen(buffer+i2);
     1663        sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",windowInfo.bgColor);
    16361664        i2+=lstrlen(buffer+i2);
    16371665        sprintf(buffer+i2,"    FONT      = %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\"\r\n",
    1638             windowInfos[i].LogFont.lfHeight,
    1639             windowInfos[i].LogFont.lfWidth,
    1640             windowInfos[i].LogFont.lfEscapement,
    1641             windowInfos[i].LogFont.lfOrientation,
    1642             windowInfos[i].LogFont.lfWeight,
    1643             windowInfos[i].LogFont.lfItalic,
    1644             windowInfos[i].LogFont.lfUnderline,
    1645             windowInfos[i].LogFont.lfStrikeOut,
    1646             windowInfos[i].LogFont.lfCharSet,
    1647             windowInfos[i].LogFont.lfOutPrecision,
    1648             windowInfos[i].LogFont.lfClipPrecision,
    1649             windowInfos[i].LogFont.lfQuality,
    1650             windowInfos[i].LogFont.lfPitchAndFamily,
    1651             windowInfos[i].LogFont.lfFaceName);
    1652         i2+=lstrlen(buffer+i2);
    1653         if(windowInfos[i].IconResName){
    1654             sprintf(buffer+i2,"    ICONID    = %s\r\n",windowInfos[i].IconResName);
    1655             i2+=lstrlen(buffer+i2);
    1656         }
    1657         sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",windowInfos[i].ClassName);
    1658         i2+=lstrlen(buffer+i2);
    1659         sprintf(buffer+i2,"    CALLBACK  = %s\r\n",windowInfos[i].CallBackName);
    1660         i2+=lstrlen(buffer+i2);
    1661         sprintf(buffer+i2,"    TYPE      = %d\r\n",windowInfos[i].type);
    1662         i2+=lstrlen(buffer+i2);
    1663         sprintf(buffer+i2,"    FILEPATH  = %s\r\n",windowInfos[i].filepath);
    1664         i2+=lstrlen(buffer+i2);
    1665         for(i3=0;i3<windowInfos[i].NumberOfChildWindows;i3++){
    1666             temporary=SetCaptionSequence(windowInfos[i].pChildInfo[i3].caption);
     1666            windowInfo.LogFont.lfHeight,
     1667            windowInfo.LogFont.lfWidth,
     1668            windowInfo.LogFont.lfEscapement,
     1669            windowInfo.LogFont.lfOrientation,
     1670            windowInfo.LogFont.lfWeight,
     1671            windowInfo.LogFont.lfItalic,
     1672            windowInfo.LogFont.lfUnderline,
     1673            windowInfo.LogFont.lfStrikeOut,
     1674            windowInfo.LogFont.lfCharSet,
     1675            windowInfo.LogFont.lfOutPrecision,
     1676            windowInfo.LogFont.lfClipPrecision,
     1677            windowInfo.LogFont.lfQuality,
     1678            windowInfo.LogFont.lfPitchAndFamily,
     1679            windowInfo.LogFont.lfFaceName);
     1680        i2+=lstrlen(buffer+i2);
     1681        if(windowInfo.IconResName){
     1682            sprintf(buffer+i2,"    ICONID    = %s\r\n",windowInfo.IconResName);
     1683            i2+=lstrlen(buffer+i2);
     1684        }
     1685        sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",windowInfo.ClassName);
     1686        i2+=lstrlen(buffer+i2);
     1687        sprintf(buffer+i2,"    CALLBACK  = %s\r\n",windowInfo.CallBackName);
     1688        i2+=lstrlen(buffer+i2);
     1689        sprintf(buffer+i2,"    TYPE      = %d\r\n",windowInfo.type);
     1690        i2+=lstrlen(buffer+i2);
     1691        sprintf(buffer+i2,"    FILEPATH  = %s\r\n",windowInfo.filepath);
     1692        i2+=lstrlen(buffer+i2);
     1693        for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
     1694            temporary=SetCaptionSequence(windowInfo.pChildInfo[i3].caption);
    16671695            sprintf(buffer+i2,"    ITEM      = %s,%d,%d,%d,%d,\"%s\",&H%08x,&H%08x,%d",
    1668                 windowInfos[i].pChildInfo[i3].IdName,
    1669                 windowInfos[i].pChildInfo[i3].pos.x,windowInfos[i].pChildInfo[i3].pos.y,
    1670                 windowInfos[i].pChildInfo[i3].size.cx,windowInfos[i].pChildInfo[i3].size.cy,
     1696                windowInfo.pChildInfo[i3].IdName,
     1697                windowInfo.pChildInfo[i3].pos.x,windowInfo.pChildInfo[i3].pos.y,
     1698                windowInfo.pChildInfo[i3].size.cx,windowInfo.pChildInfo[i3].size.cy,
    16711699                temporary,
    1672                 windowInfos[i].pChildInfo[i3].style,
    1673                 windowInfos[i].pChildInfo[i3].ExStyle,
    1674                 windowInfos[i].pChildInfo[i3].Control
     1700                windowInfo.pChildInfo[i3].style,
     1701                windowInfo.pChildInfo[i3].ExStyle,
     1702                windowInfo.pChildInfo[i3].Control
    16751703            );
    16761704            i2+=lstrlen(buffer+i2);
    16771705            HeapDefaultFree(temporary);
    1678             if(windowInfos[i].pChildInfo[i3].Control==CT_IMAGEBOX){
    1679                 sprintf(buffer+i2,",%d,\"%s\"",windowInfos[i].pChildInfo[i3].ImageCtrlInfo.type,windowInfos[i].pChildInfo[i3].ImageCtrlInfo.path);
     1706            if(windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){
     1707                sprintf(buffer+i2,",%d,\"%s\"",windowInfo.pChildInfo[i3].ImageCtrlInfo.type,windowInfo.pChildInfo[i3].ImageCtrlInfo.path);
    16801708                i2+=lstrlen(buffer+i2);
    16811709            }
     
    16871715            }
    16881716        }
    1689         sprintf(buffer+i2,"END\r\n",windowInfos[i].name);
     1717        sprintf(buffer+i2,"END\r\n",windowInfo.name);
    16901718        i2+=lstrlen(buffer+i2);
    16911719        if(i2-GENERAL_SIZE<GENERAL_SIZE){
     
    21462174    extern HANDLE hHeap;
    21472175    extern PROJECTINFO ProjectInfo;
    2148     int i;
    21492176    char temporary[MAX_PATH],temp2[1024],*pTemp;
    21502177
     
    21582185        return;
    21592186    }
    2160     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    2161         if(lstrcmpi(NewWindow.name,ProjectInfo.windowInfos[i].name)==0){
     2187    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     2188    {
     2189        if(lstrcmpi(NewWindow.name,windowInfo.name)==0){
    21622190            //"\"%s\" ウィンドウは既にプロジェクト内に存在します。"
    2163             sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,ProjectInfo.windowInfos[i].name);
     2191            sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,windowInfo.name);
    21642192            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21652193            return;
    21662194        }
    2167         if(lstrcmpi(NewWindow.HandleName,ProjectInfo.windowInfos[i].HandleName)==0){
     2195        if(lstrcmpi(NewWindow.HandleName,windowInfo.HandleName)==0){
    21682196            //"\"%s\" ハンドルは既にプロジェクト内に存在します。"
    2169             sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,ProjectInfo.windowInfos[i].HandleName);
     2197            sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,windowInfo.HandleName);
    21702198            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21712199            return;
    21722200        }
    2173         if(lstrcmpi(NewWindow.CallBackName,ProjectInfo.windowInfos[i].CallBackName)==0){
     2201        if(lstrcmpi(NewWindow.CallBackName,windowInfo.CallBackName)==0){
    21742202            //"\"%s\" プロシージャは既にプロジェクト内に存在します。"
    2175             sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,ProjectInfo.windowInfos[i].CallBackName);
     2203            sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,windowInfo.CallBackName);
    21762204            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21772205            return;
     
    23012329    ProjectInfo.ModifyOfMaterial=1;
    23022330
    2303     NewRadWindow(ProjectInfo.windowInfos.size()-1);
     2331    NewRadWindow( ProjectInfo.windowInfos.back() );
    23042332}
    23052333void Project_Window_Delete(int WndInfoNum){
Note: See TracChangeset for help on using the changeset viewer.