Ignore:
Timestamp:
May 19, 2008, 7:38:03 AM (15 years ago)
Author:
dai_9181
Message:

WindowInfosクラスを追加。

File:
1 edited

Legend:

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

    r613 r615  
    180180                    hTreeItem=TreeView_GetSelection(hMaterialTreeView);
    181181                    for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
    182                         if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
    183                             NewRadWindow( ProjectInfo.windowInfos[i] );
     182                        if(ProjectInfo.windowInfos[i]->hTreeItem==hTreeItem){
     183                            NewRadWindow( *ProjectInfo.windowInfos[i] );
    184184                            break;
    185185                        }
     
    247247                    }
    248248                    for(i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
    249                         if(ProjectInfo.windowInfos[i].hTreeItem==hTreeItem){
     249                        if(ProjectInfo.windowInfos[i]->hTreeItem==hTreeItem){
    250250
    251251                            //"%s ウィンドウをプロジェクトから削除します。よろしいですか?"
    252                             sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.windowInfos[i].name);
     252                            sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.windowInfos[i]->name);
    253253                            if(IDCANCEL==MessageBox(hOwner,str,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) break;
    254254
     
    10531053        // ウィンドウ定義ファイル(*.wnd)を作成
    10541054        /////////////////////////////////////////
    1055         std::vector<WINDOW_INFO> windowInfos;
    1056         windowInfos.push_back( WINDOW_INFO() );
    1057         windowInfos.back().name="MainWnd";
    1058         windowInfos.back().HandleName="hMainWnd";
    1059         windowInfos.back().pos.x=CW_USEDEFAULT;
    1060         windowInfos.back().pos.y=CW_USEDEFAULT;
    1061         windowInfos.back().size.cx=480;
    1062         windowInfos.back().size.cy=360;
    1063         windowInfos.back().caption=NewProjectInfo.name;
     1055        WindowInfos windowInfos;
     1056        windowInfos.push_back( new WindowInfo() );
     1057        windowInfos.back()->name="MainWnd";
     1058        windowInfos.back()->HandleName="hMainWnd";
     1059        windowInfos.back()->pos.x=CW_USEDEFAULT;
     1060        windowInfos.back()->pos.y=CW_USEDEFAULT;
     1061        windowInfos.back()->size.cx=480;
     1062        windowInfos.back()->size.cy=360;
     1063        windowInfos.back()->caption=NewProjectInfo.name;
    10641064        if(NewProjectInfo.dwTypeID==IDC_EXE_WINDOWBASE)
    1065             windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE;
     1065            windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE;
    10661066        else if(NewProjectInfo.dwTypeID==IDC_EXE_DIRECTX)
    1067             windowInfos.back().style=WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU;
    1068         windowInfos.back().ExStyle=0;
    1069         windowInfos.back().MenuID=0;
    1070         windowInfos.back().id=0;
    1071         windowInfos.back().bgColor=COLOR_3DFACE;
    1072         GetDefaultWindowFont(&windowInfos.back().LogFont);
    1073         windowInfos.back().IconResName=0;
    1074         windowInfos.back().ClassName="NORMAL";
    1075         windowInfos.back().CallBackName="MainWndProc";
    1076         windowInfos.back().type=WNDTYPE_DEFAULT;
    1077         windowInfos.back().filepath="MainWnd.ab";
    1078         windowInfos.back().NumberOfChildWindows=0;
     1067            windowInfos.back()->style=WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU;
     1068        windowInfos.back()->ExStyle=0;
     1069        windowInfos.back()->MenuID=0;
     1070        windowInfos.back()->id=0;
     1071        windowInfos.back()->bgColor=COLOR_3DFACE;
     1072        GetDefaultWindowFont(&windowInfos.back()->LogFont);
     1073        windowInfos.back()->IconResName=0;
     1074        windowInfos.back()->ClassName="NORMAL";
     1075        windowInfos.back()->CallBackName="MainWndProc";
     1076        windowInfos.back()->type=WNDTYPE_DEFAULT;
     1077        windowInfos.back()->filepath="MainWnd.ab";
     1078        windowInfos.back()->NumberOfChildWindows=0;
    10791079        sprintf(temporary,"%s%s.wnd",dir,NewProjectInfo.name);
    10801080
     
    12041204    tv.hParent=TreeView_InsertItem(hMaterialTreeView,&tv);
    12051205    ProjectInfo.hWindowTreeItem=tv.hParent;
    1206     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1206    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    12071207    {
    12081208        tv.item.iImage=2;
    12091209        tv.item.iSelectedImage=2;
    1210         tv.item.pszText = windowInfo.name;
    1211         windowInfo.hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
     1210        tv.item.pszText = pWindowInfo->name;
     1211        pWindowInfo->hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);
    12121212    }
    12131213}
     
    14571457    }
    14581458    else{
    1459         ProjectInfo.windowInfos.clear();
     1459        ProjectInfo.windowInfos.Clear();
    14601460
    14611461        ProjectInfo.NumberOfMenu=0;
     
    15821582                        else if(lstrcmpi(temporary,"rad")==0){
    15831583                            for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
    1584                                 if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
    1585                                     NewRadWindow( ProjectInfo.windowInfos[i3] );
     1584                                if(lstrcmpi(ProjectInfo.windowInfos[i3]->name,temp2)==0){
     1585                                    NewRadWindow( *ProjectInfo.windowInfos[i3] );
    15861586                                    break;
    15871587                                }
     
    17041704                        else if(lstrcmpi(temporary,"rad")==0){
    17051705                            for(i3=0;i3<static_cast<int>(ProjectInfo.windowInfos.size());i3++){
    1706                                 if(lstrcmpi(ProjectInfo.windowInfos[i3].name,temp2)==0){
    1707                                     NewRadWindow( ProjectInfo.windowInfos[i3] );
     1706                                if(lstrcmpi(ProjectInfo.windowInfos[i3]->name,temp2)==0){
     1707                                    NewRadWindow( *ProjectInfo.windowInfos[i3] );
    17081708                                    break;
    17091709                                }
     
    18951895        }
    18961896        else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    1897             BOOST_FOREACH( const WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1897            BOOST_FOREACH( const WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    18981898            {
    1899                 if(lstrcmp(MdiInfo[WndNum].path, windowInfo.name)==0){
     1899                if(lstrcmp(MdiInfo[WndNum].path, pWindowInfo->name)==0){
    19001900                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    19011901                    break;
     
    19301930
    19311931    //ウィンドウ情報のメモリを解放
    1932     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1932    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    19331933    {
    1934         HeapDefaultFree(windowInfo.name);
    1935         HeapDefaultFree(windowInfo.HandleName);
    1936         HeapDefaultFree(windowInfo.caption);
    1937         HeapDefaultFree(windowInfo.ClassName);
    1938         HeapDefaultFree(windowInfo.CallBackName);
    1939         HeapDefaultFree(windowInfo.filepath);
    1940         if(windowInfo.MenuID)
    1941             HeapDefaultFree(windowInfo.MenuID);
    1942         if(windowInfo.IconResName)
    1943             HeapDefaultFree(windowInfo.IconResName);
     1934        HeapDefaultFree(pWindowInfo->name);
     1935        HeapDefaultFree(pWindowInfo->HandleName);
     1936        HeapDefaultFree(pWindowInfo->caption);
     1937        HeapDefaultFree(pWindowInfo->ClassName);
     1938        HeapDefaultFree(pWindowInfo->CallBackName);
     1939        HeapDefaultFree(pWindowInfo->filepath);
     1940        if(pWindowInfo->MenuID)
     1941            HeapDefaultFree(pWindowInfo->MenuID);
     1942        if(pWindowInfo->IconResName)
     1943            HeapDefaultFree(pWindowInfo->IconResName);
    19441944
    19451945        //子ウィンドウのメモリを解放
    1946         for(i2=0;i2<windowInfo.NumberOfChildWindows;i2++){
    1947             HeapDefaultFree(windowInfo.pChildInfo[i2].IdName);
    1948             HeapDefaultFree(windowInfo.pChildInfo[i2].caption);
    1949             if(windowInfo.pChildInfo[i2].Control==CT_IMAGEBOX){
     1946        for(i2=0;i2<pWindowInfo->NumberOfChildWindows;i2++){
     1947            HeapDefaultFree(pWindowInfo->pChildInfo[i2].IdName);
     1948            HeapDefaultFree(pWindowInfo->pChildInfo[i2].caption);
     1949            if(pWindowInfo->pChildInfo[i2].Control==CT_IMAGEBOX){
    19501950                //イメージ ボックスの場合
    1951                 HeapDefaultFree(windowInfo.pChildInfo[i2].ImageCtrlInfo.path);
    1952             }
    1953         }
    1954         HeapDefaultFree(windowInfo.pChildInfo);
    1955     }
    1956     ProjectInfo.windowInfos.clear();
     1951                HeapDefaultFree(pWindowInfo->pChildInfo[i2].ImageCtrlInfo.path);
     1952            }
     1953        }
     1954        HeapDefaultFree(pWindowInfo->pChildInfo);
     1955    }
     1956    ProjectInfo.windowInfos.Clear();
    19571957
    19581958    //メニュー情報のメモリを解放
     
    20402040        }
    20412041        else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    2042             BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     2042            BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    20432043            {
    2044                 if(lstrcmpi(MdiInfo[WndNum].path,windowInfo.name)==0){
     2044                if(lstrcmpi(MdiInfo[WndNum].path,pWindowInfo->name)==0){
    20452045                    sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path);
    20462046                    i2+=lstrlen(buffer+i2);
Note: See TracChangeset for help on using the changeset viewer.