Changeset 609 in dev for trunk/ab5.0/abdev/abdev/ProjectControl.cpp
- Timestamp:
- May 18, 2008, 4:37:11 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/ProjectControl.cpp
r608 r609 180 180 case IDM_MATERIALTREE_OPEN: 181 181 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){ 184 184 NewRadWindow(i); 185 185 break; … … 247 247 } 248 248 } 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){ 251 251 252 252 //"%s ウィンドウをプロジェクトから削除します。よろしいですか?" 253 sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo. pWindowInfo[i].name);253 sprintf(str,STRING_PJ_CHECK_DELETEWINDOW,ProjectInfo.windowInfos[i].name); 254 254 if(IDCANCEL==MessageBox(hOwner,str,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) break; 255 255 … … 1058 1058 // ウィンドウ定義ファイル(*.wnd)を作成 1059 1059 ///////////////////////////////////////// 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; 1068 1069 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; 1070 1071 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; 1083 1084 sprintf(temporary,"%s%s.wnd",dir,NewProjectInfo.name); 1084 1085 1085 1086 ProjectInfo.NumberOfMenu=0; 1086 SaveWindowFile( temporary,WindowInfo,1);1087 SaveWindowFile( temporary, windowInfos ); 1087 1088 } 1088 1089 … … 1209 1210 tv.hParent=TreeView_InsertItem(hMaterialTreeView,&tv); 1210 1211 ProjectInfo.hWindowTreeItem=tv.hParent; 1211 for(i=0;i<ProjectInfo.NumberOfWindows;i++){ 1212 BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos ) 1213 { 1212 1214 tv.item.iImage=2; 1213 1215 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); 1216 1218 } 1217 1219 } … … 1253 1255 //解析 1254 1256 ProjectInfo.pobj_DBFileInfo=new CDBFileInfo(); 1257 bool isUseWindow = false; 1255 1258 for(i=0;;i++){ 1256 1259 if(buffer[i]=='\0') break; … … 1324 1327 temporary[i2]=buffer[i]; 1325 1328 } 1326 ProjectInfo.NumberOfWindows=atoi(temporary); 1329 if( atoi(temporary) > 0 ) 1330 { 1331 isUseWindow = true; 1332 } 1327 1333 } 1328 1334 else if(lstrcmpi(temporary,"OPTION")==0&&buffer[i]=='='){ … … 1450 1456 1451 1457 1452 if(ProjectInfo.NumberOfWindows){ 1458 if( isUseWindow ) 1459 { 1453 1460 ///////////////////////////////////////////// 1454 1461 //ウィンドウ定義ファイル(*.wnd)をオープン … … 1457 1464 } 1458 1465 else{ 1459 ProjectInfo. pWindowInfo=(WINDOW_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);1466 ProjectInfo.windowInfos.clear(); 1460 1467 1461 1468 ProjectInfo.NumberOfMenu=0; … … 1581 1588 } 1582 1589 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){ 1585 1592 NewRadWindow(i3); 1586 1593 break; … … 1703 1710 } 1704 1711 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){ 1707 1714 NewRadWindow(i3); 1708 1715 break; … … 1897 1904 } 1898 1905 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){ 1901 1909 SendMessage(hCloseChild,WM_CLOSE,0,0); 1902 1910 break; … … 1931 1939 1932 1940 //ウィンドウ情報のメモリを解放 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); 1944 1953 1945 1954 //子ウィンドウのメモリを解放 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){ 1950 1959 //イメージ ボックスの場合 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(); 1957 1966 1958 1967 //メニュー情報のメモリを解放 … … 2041 2050 } 2042 2051 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){ 2045 2055 sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path); 2046 2056 i2+=lstrlen(buffer+i2); … … 2178 2188 i2+=lstrlen(buffer+i2); 2179 2189 } 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()); 2181 2191 i2+=lstrlen(buffer+i2); 2182 2192 sprintf(buffer+i2,"#OPTION=&H%08x\r\n\r\n",ProjectInfo.dwOption); … … 2312 2322 } 2313 2323 } 2314 if(ProjectInfo.NumberOfWindows){ 2324 if( !ProjectInfo.windowInfos.empty() ) 2325 { 2315 2326 lstrcpy(buffer+i2,"\r\n"); 2316 2327 i2+=lstrlen(buffer+i2); … … 2333 2344 } 2334 2345 } 2335 if(ProjectInfo.NumberOfWindows){ 2346 if( !ProjectInfo.windowInfos.empty() ) 2347 { 2336 2348 lstrcpy(buffer+i2,"\r\n"); 2337 2349 i2+=lstrlen(buffer+i2); … … 2358 2370 2359 2371 2360 if(ProjectInfo.NumberOfWindows){ 2372 if( !ProjectInfo.windowInfos.empty() ) 2373 { 2361 2374 ///////////////////////////////////////////////////// 2362 2375 //ウィンドウ関連ファイル(*.wnd)を作成、保存 2363 2376 if(ProjectInfo.ModifyOfMaterial){ 2364 2377 sprintf(temporary,"%s%s.wnd",ProjectInfo.dir,ProjectInfo.name); 2365 SaveWindowFile( temporary,ProjectInfo.pWindowInfo,ProjectInfo.NumberOfWindows);2378 SaveWindowFile( temporary, ProjectInfo.windowInfos ); 2366 2379 } 2367 2380 … … 2438 2451 SourceTime.dwLowDateTime>ExeTime.dwLowDateTime) return 1; 2439 2452 } 2440 if(ProjectInfo.NumberOfWindows){ 2453 if( !ProjectInfo.windowInfos.empty() ) 2454 { 2441 2455 //CallBack.wbp 2442 2456 lstrcpy(temporary,"CallBack.wbp");
Note: See TracChangeset
for help on using the changeset viewer.