Ignore:
Timestamp:
May 18, 2008, 4:37:11 PM (16 years ago)
Author:
dai_9181
Message:

ProjectInfo構造体のpWindowInfoメンバをwindowInfosメンバに置き換えた。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/ProjectControl.cpp

    r608 r609  
    180180                case IDM_MATERIALTREE_OPEN:
    181181                    hTreeItem=TreeView_GetSelection(hMaterialTreeView);
    182                     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    183                         if(ProjectInfo.pWindowInfo[i].hTreeItem==hTreeItem){
     182                    for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
     183                        if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
    184184                            NewRadWindow(i);
    185185                            break;
     
    247247                        }
    248248                    }
    249                     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    250                         if(ProjectInfo.pWindowInfo[i].hTreeItem==hTreeItem){
     249                    for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
     250                        if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
    251251
    252252                            //"%s ウィンドウをプロジェクトから削除します。よろしいですか?"
    253                             sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.pWindowInfo[i].name);
     253                            sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.windowInfos[i].name);
    254254                            if(IDCANCEL==MessageBox(hOwner,str,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) break;
    255255
     
    10581058        // ウィンドウ定義ファイル(*.wnd)を作成
    10591059        /////////////////////////////////////////
    1060         WINDOW_INFO WindowInfo[1];
    1061         WindowInfo[0].name="MainWnd";
    1062         WindowInfo[0].HandleName="hMainWnd";
    1063         WindowInfo[0].pos.x=CW_USEDEFAULT;
    1064         WindowInfo[0].pos.y=CW_USEDEFAULT;
    1065         WindowInfo[0].size.cx=480;
    1066         WindowInfo[0].size.cy=360;
    1067         WindowInfo[0].caption=NewProjectInfo.name;
     1060        std::vector<WINDOW_INFO> windowInfos;
     1061        windowInfos.push_back( WINDOW_INFO() );
     1062        windowInfos.back().name="MainWnd";
     1063        windowInfos.back().HandleName="hMainWnd";
     1064        windowInfos.back().pos.x=CW_USEDEFAULT;
     1065        windowInfos.back().pos.y=CW_USEDEFAULT;
     1066        windowInfos.back().size.cx=480;
     1067        windowInfos.back().size.cy=360;
     1068        windowInfos.back().caption=NewProjectInfo.name;
    10681069        if(NewProjectInfo.dwTypeID==IDC_EXE_WINDOWBASE)
    1069             WindowInfo[0].style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE;
     1070            windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE;
    10701071        else if(NewProjectInfo.dwTypeID==IDC_EXE_DIRECTX)
    1071             WindowInfo[0].style=WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU;
    1072         WindowInfo[0].ExStyle=0;
    1073         WindowInfo[0].MenuID=0;
    1074         WindowInfo[0].id=0;
    1075         WindowInfo[0].bgColor=COLOR_3DFACE;
    1076         GetDefaultWindowFont(&WindowInfo[0].LogFont);
    1077         WindowInfo[0].IconResName=0;
    1078         WindowInfo[0].ClassName="NORMAL";
    1079         WindowInfo[0].CallBackName="MainWndProc";
    1080         WindowInfo[0].type=WNDTYPE_DEFAULT;
    1081         WindowInfo[0].filepath="MainWnd.ab";
    1082         WindowInfo[0].NumberOfChildWindows=0;
     1072            windowInfos.back().style=WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU;
     1073        windowInfos.back().ExStyle=0;
     1074        windowInfos.back().MenuID=0;
     1075        windowInfos.back().id=0;
     1076        windowInfos.back().bgColor=COLOR_3DFACE;
     1077        GetDefaultWindowFont(&windowInfos.back().LogFont);
     1078        windowInfos.back().IconResName=0;
     1079        windowInfos.back().ClassName="NORMAL";
     1080        windowInfos.back().CallBackName="MainWndProc";
     1081        windowInfos.back().type=WNDTYPE_DEFAULT;
     1082        windowInfos.back().filepath="MainWnd.ab";
     1083        windowInfos.back().NumberOfChildWindows=0;
    10831084        sprintf(temporary,"%s%s.wnd",dir,NewProjectInfo.name);
    10841085
    10851086        ProjectInfo.NumberOfMenu=0;
    1086         SaveWindowFile(temporary,WindowInfo,1);
     1087        SaveWindowFile( temporary, windowInfos );
    10871088    }
    10881089
     
    12091210    tv.hParent=TreeView_InsertItem(hMaterialTreeView,&tv);
    12101211    ProjectInfo.hWindowTreeItem=tv.hParent;
    1211     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
     1212    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1213    {
    12121214        tv.item.iImage=2;
    12131215        tv.item.iSelectedImage=2;
    1214         tv.item.pszText=ProjectInfo.pWindowInfo[i].name;
    1215         ProjectInfo.pWindowInfo[i].hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
     1216        tv.item.pszText = windowInfo.name;
     1217        windowInfo.hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
    12161218    }
    12171219}
     
    12531255    //解析
    12541256    ProjectInfo.pobj_DBFileInfo=new CDBFileInfo();
     1257    bool isUseWindow = false;
    12551258    for(i=0;;i++){
    12561259        if(buffer[i]=='\0') break;
     
    13241327                    temporary[i2]=buffer[i];
    13251328                }
    1326                 ProjectInfo.NumberOfWindows=atoi(temporary);
     1329                if( atoi(temporary) > 0 )
     1330                {
     1331                    isUseWindow = true;
     1332                }
    13271333            }
    13281334            else if(lstrcmpi(temporary,"OPTION")==0&&buffer[i]=='='){
     
    14501456
    14511457
    1452     if(ProjectInfo.NumberOfWindows){
     1458    if( isUseWindow )
     1459    {
    14531460        /////////////////////////////////////////////
    14541461        //ウィンドウ定義ファイル(*.wnd)をオープン
     
    14571464    }
    14581465    else{
    1459         ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
     1466        ProjectInfo.windowInfos.clear();
    14601467
    14611468        ProjectInfo.NumberOfMenu=0;
     
    15811588                        }
    15821589                        else if(lstrcmpi(temporary,"rad")==0){
    1583                             for(i3=0;i3<ProjectInfo.NumberOfWindows;i3++){
    1584                                 if(lstrcmpi(ProjectInfo.pWindowInfo[i3].name,temp2)==0){
     1590                            for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
     1591                                if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
    15851592                                    NewRadWindow(i3);
    15861593                                    break;
     
    17031710                        }
    17041711                        else if(lstrcmpi(temporary,"rad")==0){
    1705                             for(i3=0;i3<ProjectInfo.NumberOfWindows;i3++){
    1706                                 if(lstrcmpi(ProjectInfo.pWindowInfo[i3].name,temp2)==0){
     1712                            for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
     1713                                if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
    17071714                                    NewRadWindow(i3);
    17081715                                    break;
     
    18971904        }
    18981905        else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    1899             for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1900                 if(lstrcmp(MdiInfo[WndNum].path,ProjectInfo.pWindowInfo[i].name)==0){
     1906            BOOST_FOREACH( const WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1907            {
     1908                if(lstrcmp(MdiInfo[WndNum].path, windowInfo.name)==0){
    19011909                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    19021910                    break;
     
    19311939
    19321940    //ウィンドウ情報のメモリを解放
    1933     for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    1934         HeapDefaultFree(ProjectInfo.pWindowInfo[i].name);
    1935         HeapDefaultFree(ProjectInfo.pWindowInfo[i].HandleName);
    1936         HeapDefaultFree(ProjectInfo.pWindowInfo[i].caption);
    1937         HeapDefaultFree(ProjectInfo.pWindowInfo[i].ClassName);
    1938         HeapDefaultFree(ProjectInfo.pWindowInfo[i].CallBackName);
    1939         HeapDefaultFree(ProjectInfo.pWindowInfo[i].filepath);
    1940         if(ProjectInfo.pWindowInfo[i].MenuID)
    1941             HeapDefaultFree(ProjectInfo.pWindowInfo[i].MenuID);
    1942         if(ProjectInfo.pWindowInfo[i].IconResName)
    1943             HeapDefaultFree(ProjectInfo.pWindowInfo[i].IconResName);
     1941    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1942    {
     1943        HeapDefaultFree(windowInfo.name);
     1944        HeapDefaultFree(windowInfo.HandleName);
     1945        HeapDefaultFree(windowInfo.caption);
     1946        HeapDefaultFree(windowInfo.ClassName);
     1947        HeapDefaultFree(windowInfo.CallBackName);
     1948        HeapDefaultFree(windowInfo.filepath);
     1949        if(windowInfo.MenuID)
     1950            HeapDefaultFree(windowInfo.MenuID);
     1951        if(windowInfo.IconResName)
     1952            HeapDefaultFree(windowInfo.IconResName);
    19441953
    19451954        //子ウィンドウのメモリを解放
    1946         for(i2=0;i2<ProjectInfo.pWindowInfo[i].NumberOfChildWindows;i2++){
    1947             HeapDefaultFree(ProjectInfo.pWindowInfo[i].pChildInfo[i2].IdName);
    1948             HeapDefaultFree(ProjectInfo.pWindowInfo[i].pChildInfo[i2].caption);
    1949             if(ProjectInfo.pWindowInfo[i].pChildInfo[i2].Control==CT_IMAGEBOX){
     1955        for(i2=0;i2<windowInfo.NumberOfChildWindows;i2++){
     1956            HeapDefaultFree(windowInfo.pChildInfo[i2].IdName);
     1957            HeapDefaultFree(windowInfo.pChildInfo[i2].caption);
     1958            if(windowInfo.pChildInfo[i2].Control==CT_IMAGEBOX){
    19501959                //イメージ ボックスの場合
    1951                 HeapDefaultFree(ProjectInfo.pWindowInfo[i].pChildInfo[i2].ImageCtrlInfo.path);
    1952             }
    1953         }
    1954         HeapDefaultFree(ProjectInfo.pWindowInfo[i].pChildInfo);
    1955     }
    1956     HeapDefaultFree(ProjectInfo.pWindowInfo);
     1960                HeapDefaultFree(windowInfo.pChildInfo[i2].ImageCtrlInfo.path);
     1961            }
     1962        }
     1963        HeapDefaultFree(windowInfo.pChildInfo);
     1964    }
     1965    ProjectInfo.windowInfos.clear();
    19571966
    19581967    //メニュー情報のメモリを解放
     
    20412050        }
    20422051        else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    2043             for(i=0;i<ProjectInfo.NumberOfWindows;i++){
    2044                 if(lstrcmpi(MdiInfo[WndNum].path,ProjectInfo.pWindowInfo[i].name)==0){
     2052            BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     2053            {
     2054                if(lstrcmpi(MdiInfo[WndNum].path,windowInfo.name)==0){
    20452055                    sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path);
    20462056                    i2+=lstrlen(buffer+i2);
     
    21782188        i2+=lstrlen(buffer+i2);
    21792189    }
    2180     sprintf(buffer+i2,"#USEWINDOW=%d\r\n\r\n",ProjectInfo.NumberOfWindows);
     2190    sprintf(buffer+i2,"#USEWINDOW=%d\r\n\r\n",ProjectInfo.windowInfos.size());
    21812191    i2+=lstrlen(buffer+i2);
    21822192    sprintf(buffer+i2,"#OPTION=&H%08x\r\n\r\n",ProjectInfo.dwOption);
     
    23122322        }
    23132323    }
    2314     if(ProjectInfo.NumberOfWindows){
     2324    if( !ProjectInfo.windowInfos.empty() )
     2325    {
    23152326        lstrcpy(buffer+i2,"\r\n");
    23162327        i2+=lstrlen(buffer+i2);
     
    23332344        }
    23342345    }
    2335     if(ProjectInfo.NumberOfWindows){
     2346    if( !ProjectInfo.windowInfos.empty() )
     2347    {
    23362348        lstrcpy(buffer+i2,"\r\n");
    23372349        i2+=lstrlen(buffer+i2);
     
    23582370
    23592371
    2360     if(ProjectInfo.NumberOfWindows){
     2372    if( !ProjectInfo.windowInfos.empty() )
     2373    {
    23612374        /////////////////////////////////////////////////////
    23622375        //ウィンドウ関連ファイル(*.wnd)を作成、保存
    23632376        if(ProjectInfo.ModifyOfMaterial){
    23642377            sprintf(temporary,"%s%s.wnd",ProjectInfo.dir,ProjectInfo.name);
    2365             SaveWindowFile(temporary,ProjectInfo.pWindowInfo,ProjectInfo.NumberOfWindows);
     2378            SaveWindowFile( temporary, ProjectInfo.windowInfos );
    23662379        }
    23672380
     
    24382451            SourceTime.dwLowDateTime>ExeTime.dwLowDateTime) return 1;
    24392452    }
    2440     if(ProjectInfo.NumberOfWindows){
     2453    if( !ProjectInfo.windowInfos.empty() )
     2454    {
    24412455        //CallBack.wbp
    24422456        lstrcpy(temporary,"CallBack.wbp");
Note: See TracChangeset for help on using the changeset viewer.