Changeset 609 in dev for trunk/ab5.0/abdev/abdev/WindowControl.cpp
- Timestamp:
- May 18, 2008, 4:37:11 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/WindowControl.cpp
r477 r609 16 16 extern PROJECTINFO ProjectInfo; 17 17 int i; 18 for(i=0;i<ProjectInfo. NumberOfWindows;i++){19 if(lstrcmpi(name,ProjectInfo. pWindowInfo[i].name)==0) return i;18 for(i=0;i<ProjectInfo.windowInfos.size();i++){ 19 if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return i; 20 20 } 21 21 return -1; 22 } 23 WINDOW_INFO *GetWndInfo( char *name ) 24 { 25 extern PROJECTINFO ProjectInfo; 26 int i; 27 for( int i=0;i<ProjectInfo.windowInfos.size();i++) 28 { 29 if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return &ProjectInfo.windowInfos[i]; 30 } 31 return NULL; 22 32 } 23 33 void ChangeDivisionToOrSign(char *CopyBuffer,const char *ReadBuffer){ … … 81 91 82 92 for(i3--;i3>=0;i3--){ 83 pChildInfo=&ProjectInfo. pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]];93 pChildInfo=&ProjectInfo.windowInfos[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]]; 84 94 85 95 MemSize+=lstrlen(pChildInfo->IdName)+1+ … … 518 528 int i,i2,sw; 519 529 char temporary[MAX_PATH],*temp2; 520 WINDOW_INFO *pWindowInfo; 521 522 pWindowInfo=&ProjectInfo.pWindowInfo[WndInfoNum]; 530 531 WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum]; 523 532 524 533 Command[0]=0; … … 976 985 int i,i2,i3,i4,i5,i6,sw1,sw2,sw3,sw4,size; 977 986 char *buffer,**ppNames,temporary[MAX_PATH]; 978 WINDOW_INFO *pWindowInfo;979 980 pWindowInfo=ProjectInfo.pWindowInfo;981 987 982 988 size=2; … … 1002 1008 1003 1009 ppNames=(char **)HeapAlloc(hHeap,0,1); 1004 for(i=0,i4=1000,i5=0;i<ProjectInfo. NumberOfWindows;i++){1005 for(i3=0;i3< pWindowInfo[i].NumberOfChildWindows;i3++){1010 for(i=0,i4=1000,i5=0;i<ProjectInfo.windowInfos.size();i++){ 1011 for(i3=0;i3<ProjectInfo.windowInfos[i].NumberOfChildWindows;i3++){ 1006 1012 1007 1013 //重複チェック 1008 1014 for(i6=0,sw1=0;i6<i5;i6++){ 1009 if(lstrcmpi(ppNames[i6], pWindowInfo[i].pChildInfo[i3].IdName)==0){1015 if(lstrcmpi(ppNames[i6],ProjectInfo.windowInfos[i].pChildInfo[i3].IdName)==0){ 1010 1016 sw1=1; 1011 1017 break; … … 1015 1021 1016 1022 ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1)); 1017 ppNames[i5]= pWindowInfo[i].pChildInfo[i3].IdName;1023 ppNames[i5]=ProjectInfo.windowInfos[i].pChildInfo[i3].IdName; 1018 1024 i5++; 1019 1025 1020 sprintf(buffer+i2,"Const %s=%d\r\n", pWindowInfo[i].pChildInfo[i3].IdName,i4);1026 sprintf(buffer+i2,"Const %s=%d\r\n",ProjectInfo.windowInfos[i].pChildInfo[i3].IdName,i4); 1021 1027 i2+=lstrlen(buffer+i2); 1022 1028 i4++; … … 1038 1044 1039 1045 //ハンドル変数を定義 1040 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1041 sprintf(buffer+i2,"Dim %s As HWND\r\n", pWindowInfo[i].HandleName);1042 i2+=lstrlen(buffer+i2); 1043 sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n", pWindowInfo[i].name);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); 1044 1050 i2+=lstrlen(buffer+i2); 1045 1051 sprintf(buffer+i2,"hFont_%s=CreateFont(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\")\r\n", 1046 pWindowInfo[i].name,1047 pWindowInfo[i].LogFont.lfHeight,1048 pWindowInfo[i].LogFont.lfWidth,1049 pWindowInfo[i].LogFont.lfEscapement,1050 pWindowInfo[i].LogFont.lfOrientation,1051 pWindowInfo[i].LogFont.lfWeight,1052 pWindowInfo[i].LogFont.lfItalic,1053 pWindowInfo[i].LogFont.lfUnderline,1054 pWindowInfo[i].LogFont.lfStrikeOut,1055 pWindowInfo[i].LogFont.lfCharSet,1056 pWindowInfo[i].LogFont.lfOutPrecision,1057 pWindowInfo[i].LogFont.lfClipPrecision,1058 pWindowInfo[i].LogFont.lfQuality,1059 pWindowInfo[i].LogFont.lfPitchAndFamily,1060 pWindowInfo[i].LogFont.lfFaceName);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); 1061 1067 i2+=lstrlen(buffer+i2); 1062 1068 … … 1072 1078 lstrcpy(buffer+i2,"h3DFaceBrush=CreateSolidBrush(GetSysColor(COLOR_3DFACE))\r\n"); 1073 1079 i2+=lstrlen(buffer+i2); 1074 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1075 if( pWindowInfo[i].bgColor<=0&&1076 pWindowInfo[i].bgColor!=-(int)RGB(255,255,255)&&1077 pWindowInfo[i].bgColor!=-(int)RGB(0,0,0)){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)){ 1078 1084 sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i); 1079 1085 i2+=lstrlen(buffer+i2); 1080 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,- pWindowInfo[i].bgColor);1086 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-ProjectInfo.windowInfos[i].bgColor); 1081 1087 i2+=lstrlen(buffer+i2); 1082 1088 } 1083 if( pWindowInfo[i].bgColor>=0x1000){1089 if(ProjectInfo.windowInfos[i].bgColor>=0x1000){ 1084 1090 sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i); 1085 1091 i2+=lstrlen(buffer+i2); 1086 1092 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n", 1087 1093 i, 1088 ProjectInfo.res.pBitmapResInfo[ pWindowInfo[i].bgColor-0x1000].IdName);1094 ProjectInfo.res.pBitmapResInfo[ProjectInfo.windowInfos[i].bgColor-0x1000].IdName); 1089 1095 i2+=lstrlen(buffer+i2); 1090 1096 } … … 1095 1101 1096 1102 //イメージ ボックス用の変数を定義 1097 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1098 for(i3=0;i3< pWindowInfo[i].NumberOfChildWindows;i3++){1099 if( pWindowInfo[i].pChildInfo[i3].Control==CT_IMAGEBOX){1100 if(( pWindowInfo[i].pChildInfo[i3].style&0x000F)==SS_ICON||1101 ( pWindowInfo[i].pChildInfo[i3].style&0x000F)==SS_BITMAP){1102 sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n", pWindowInfo[i].name,pWindowInfo[i].pChildInfo[i3].IdName);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); 1103 1109 i2+=lstrlen(buffer+i2); 1104 1110 … … 1148 1154 } 1149 1155 1150 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1156 for(i=0;i<ProjectInfo.windowInfos.size();i++){ 1151 1157 //フォントハンドル解放 1152 sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",ProjectInfo. pWindowInfo[i].name);1158 sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",ProjectInfo.windowInfos[i].name); 1153 1159 i2+=lstrlen(buffer+i2); 1154 1160 … … 1162 1168 lstrcpy(buffer+i2,"\tDeleteObject(h3DFaceBrush)\r\n"); 1163 1169 i2+=lstrlen(buffer+i2); 1164 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1165 if( pWindowInfo[i].bgColor<=0&&1166 pWindowInfo[i].bgColor!=-(int)RGB(255,255,255)&&1167 pWindowInfo[i].bgColor!=-(int)RGB(0,0,0)){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)){ 1168 1174 sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i); 1169 1175 i2+=lstrlen(buffer+i2); … … 1178 1184 1179 1185 1180 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1186 for(i=0;i<ProjectInfo.windowInfos.size();i++){ 1181 1187 if(i!=0){ 1182 1188 lstrcpy(buffer+i2,"\r\n"); … … 1191 1197 ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]); 1192 1198 1193 sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n", pWindowInfo[i].name);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); 1194 1200 i2+=lstrlen(buffer+i2); 1195 1201 … … 1229 1235 i2+=lstrlen(buffer+i2); 1230 1236 if(sw4){ 1231 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n", pWindowInfo[i].name);1237 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name); 1232 1238 i2+=lstrlen(buffer+i2); 1233 1239 } … … 1239 1245 i2+=lstrlen(buffer+i2); 1240 1246 1241 if(GetNotifyCommandByItemMessage(& pWindowInfo[i],pItemEventInfo,buffer+i2,"\t\t\t\t")){1247 if(GetNotifyCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t")){ 1242 1248 i2+=lstrlen(buffer+i2); 1243 1249 … … 1255 1261 lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n"); 1256 1262 i2+=lstrlen(buffer+i2); 1257 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n", pWindowInfo[i].name);1263 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name); 1258 1264 i2+=lstrlen(buffer+i2); 1259 1265 } … … 1267 1273 1268 1274 //pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う 1269 GetCommandByItemMessage(& pWindowInfo[i],pItemEventInfo,buffer+i2,"\t\t\t\t");1275 GetCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t"); 1270 1276 i2+=lstrlen(buffer+i2); 1271 1277 … … 1278 1284 lstrcpy(buffer+i2,"\t\tCase Else\r\n"); 1279 1285 i2+=lstrlen(buffer+i2); 1280 sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n", pWindowInfo[i].name);1286 sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",ProjectInfo.windowInfos[i].name); 1281 1287 i2+=lstrlen(buffer+i2); 1282 1288 lstrcpy(buffer+i2,"\t\t\tExit Function\r\n"); … … 1286 1292 i2+=lstrlen(buffer+i2); 1287 1293 1288 sprintf(buffer+i2,"\tEventCall_%s=0\r\n", pWindowInfo[i].name);1294 sprintf(buffer+i2,"\tEventCall_%s=0\r\n",ProjectInfo.windowInfos[i].name); 1289 1295 i2+=lstrlen(buffer+i2); 1290 1296 lstrcpy(buffer+i2,"End Function\r\n"); … … 1338 1344 lstrcpy(buffer+i2,"\tDim hDlg As HWND\r\n"); 1339 1345 i2+=lstrlen(buffer+i2); 1340 for(i=0,sw1=0;i<ProjectInfo. NumberOfWindows;i++){1341 if( pWindowInfo[i].type==WNDTYPE_MODALDLG){1346 for(i=0,sw1=0;i<ProjectInfo.windowInfos.size();i++){ 1347 if(ProjectInfo.windowInfos[i].type==WNDTYPE_MODALDLG){ 1342 1348 if(sw1==0){ 1343 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n", pWindowInfo[i].name);1349 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name); 1344 1350 i2+=lstrlen(buffer+i2); 1345 1351 sw1=1; 1346 1352 } 1347 1353 else{ 1348 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n", pWindowInfo[i].name);1354 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name); 1349 1355 i2+=lstrlen(buffer+i2); 1350 1356 } 1351 1357 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", 1352 pWindowInfo[i].HandleName,1353 pWindowInfo[i].ExStyle,1354 pWindowInfo[i].caption,1355 pWindowInfo[i].style,1356 pWindowInfo[i].pos.x,1357 pWindowInfo[i].pos.y,1358 pWindowInfo[i].size.cx,1359 pWindowInfo[i].size.cy,1360 pWindowInfo[i].id);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); 1361 1367 i2+=lstrlen(buffer+i2); 1362 1368 sprintf(buffer+i2,"\t\thDlg=%s\r\n", 1363 pWindowInfo[i].HandleName);1369 ProjectInfo.windowInfos[i].HandleName); 1364 1370 i2+=lstrlen(buffer+i2); 1365 1371 if(bAvailUserProc[i]){ 1366 1372 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n", 1367 pWindowInfo[i].HandleName,1368 pWindowInfo[i].CallBackName);1373 ProjectInfo.windowInfos[i].HandleName, 1374 ProjectInfo.windowInfos[i].CallBackName); 1369 1375 } 1370 1376 else{ 1371 1377 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n", 1372 pWindowInfo[i].HandleName,1373 pWindowInfo[i].name);1374 } 1375 i2+=lstrlen(buffer+i2); 1376 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n", pWindowInfo[i].HandleName);1377 i2+=lstrlen(buffer+i2); 1378 if( pWindowInfo[i].IconResName){1379 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n", pWindowInfo[i].HandleName,pWindowInfo[i].IconResName);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); 1380 1386 i2+=lstrlen(buffer+i2); 1381 1387 } 1382 sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n", pWindowInfo[i].HandleName);1388 sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",ProjectInfo.windowInfos[i].HandleName); 1383 1389 i2+=lstrlen(buffer+i2); 1384 1390 } … … 1434 1440 lstrcpy(buffer+i2,"\r\nFunction CreateDialog(hOwnerWnd As HWND, TemplateName As LPSTR) As HWND\r\n"); 1435 1441 i2+=lstrlen(buffer+i2); 1436 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1437 if( pWindowInfo[i].type==WNDTYPE_MODELESSDLG){1438 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n", pWindowInfo[i].name);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); 1439 1445 i2+=lstrlen(buffer+i2); 1440 1446 1441 1447 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", 1442 pWindowInfo[i].HandleName,1443 pWindowInfo[i].ExStyle,1444 pWindowInfo[i].caption,1445 pWindowInfo[i].style,1446 pWindowInfo[i].pos.x,1447 pWindowInfo[i].pos.y,1448 pWindowInfo[i].size.cx,1449 pWindowInfo[i].size.cy,1450 pWindowInfo[i].id);1451 i2+=lstrlen(buffer+i2); 1452 sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n", pWindowInfo[i].HandleName);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); 1453 1459 i2+=lstrlen(buffer+i2); 1454 1460 if(bAvailUserProc[i]){ 1455 1461 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n", 1456 pWindowInfo[i].HandleName,1457 pWindowInfo[i].CallBackName);1462 ProjectInfo.windowInfos[i].HandleName, 1463 ProjectInfo.windowInfos[i].CallBackName); 1458 1464 } 1459 1465 else{ 1460 1466 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n", 1461 pWindowInfo[i].HandleName,1462 pWindowInfo[i].name);1463 } 1464 i2+=lstrlen(buffer+i2); 1465 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n", pWindowInfo[i].HandleName);1466 i2+=lstrlen(buffer+i2); 1467 if( pWindowInfo[i].IconResName){1468 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n", pWindowInfo[i].HandleName,pWindowInfo[i].IconResName);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); 1469 1475 i2+=lstrlen(buffer+i2); 1470 1476 } 1471 sprintf(buffer+i2,"\tEnd If\r\n", pWindowInfo[i].name);1477 sprintf(buffer+i2,"\tEnd If\r\n",ProjectInfo.windowInfos[i].name); 1472 1478 i2+=lstrlen(buffer+i2); 1473 1479 } … … 1504 1510 i2+=lstrlen(buffer+i2); 1505 1511 1506 for(i=0;i<ProjectInfo. NumberOfWindows;i++){1507 if( pWindowInfo[i].type==WNDTYPE_DEFAULT){1512 for(i=0;i<ProjectInfo.windowInfos.size();i++){ 1513 if(ProjectInfo.windowInfos[i].type==WNDTYPE_DEFAULT){ 1508 1514 ////////////////////// 1509 1515 //通常ウィンドウ作成 … … 1512 1518 i2+=2; 1513 1519 1514 if( pWindowInfo[i].IconResName==0){1520 if(ProjectInfo.windowInfos[i].IconResName==0){ 1515 1521 lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n"); 1516 1522 i2+=lstrlen(buffer+i2); … … 1519 1525 } 1520 1526 else{ 1521 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n", pWindowInfo[i].IconResName);1527 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName); 1522 1528 i2+=lstrlen(buffer+i2); 1523 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n", pWindowInfo[i].IconResName);1529 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName); 1524 1530 i2+=lstrlen(buffer+i2); 1525 1531 } … … 1528 1534 i2+=lstrlen(buffer+i2); 1529 1535 if(bAvailUserProc[i]) 1530 sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n", pWindowInfo[i].CallBackName);1531 else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n", pWindowInfo[i].name);1532 i2+=lstrlen(buffer+i2); 1533 if( pWindowInfo[i].bgColor==COLOR_3DFACE)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) 1534 1540 lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=h3DFaceBrush\r\n"); 1535 else if( pWindowInfo[i].bgColor==-(int)RGB(255,255,255))1541 else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(255,255,255)) 1536 1542 lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(WHITE_BRUSH)\r\n"); 1537 else if( pWindowInfo[i].bgColor==-(int)RGB(0,0,0))1543 else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(0,0,0)) 1538 1544 lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(BLACK_BRUSH)\r\n"); 1539 else if( pWindowInfo[i].bgColor<=0||1540 pWindowInfo[i].bgColor>=0x1000){1545 else if(ProjectInfo.windowInfos[i].bgColor<=0|| 1546 ProjectInfo.windowInfos[i].bgColor>=0x1000){ 1541 1547 //色指定またはビットマップ 1542 1548 sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i); … … 1546 1552 i2+=lstrlen(buffer+i2); 1547 1553 sprintf(buffer+i2,"CreateWindowEx(&H%08x,\"%s%d\",\"%s\",&H%08x,%d,%d,%d,%d,0,0,GetModuleHandle(0),0)\r\n", 1548 pWindowInfo[i].ExStyle,1549 pWindowInfo[i].ClassName,i,1550 pWindowInfo[i].caption,1551 pWindowInfo[i].style,1552 pWindowInfo[i].pos.x,1553 pWindowInfo[i].pos.y,1554 pWindowInfo[i].size.cx,1555 pWindowInfo[i].size.cy);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); 1556 1562 i2+=lstrlen(buffer+i2); 1557 1563 } … … 1596 1602 return i2; 1597 1603 } 1598 void SaveWindowFile(char *path,WINDOW_INFO *pWindowInfo,int NumberOfWindowInfo){ 1604 void SaveWindowFile( char *path, const std::vector<WINDOW_INFO> &windowInfos ) 1605 { 1599 1606 extern HANDLE hHeap; 1600 1607 extern MDIINFO MdiInfo[MAX_WNDNUM]; … … 1605 1612 size=2; 1606 1613 buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size); 1607 for(i=0,i2=0;i< NumberOfWindowInfo;i++){1608 sprintf(buffer+i2,"WINDOW:%s\r\n", pWindowInfo[i].name);1609 i2+=lstrlen(buffer+i2); 1610 sprintf(buffer+i2," HANDLE = %s\r\n", pWindowInfo[i].HandleName);1611 i2+=lstrlen(buffer+i2); 1612 sprintf(buffer+i2," POINT = %d,%d\r\n", pWindowInfo[i].pos.x,pWindowInfo[i].pos.y);1613 i2+=lstrlen(buffer+i2); 1614 sprintf(buffer+i2," SIZE = %d,%d\r\n", pWindowInfo[i].size.cx,pWindowInfo[i].size.cy);1615 i2+=lstrlen(buffer+i2); 1616 sprintf(buffer+i2," CAPTION = \"%s\"\r\n", pWindowInfo[i].caption);1617 i2+=lstrlen(buffer+i2); 1618 sprintf(buffer+i2," STYLE = &H%08x\r\n", pWindowInfo[i].style);1619 i2+=lstrlen(buffer+i2); 1620 sprintf(buffer+i2," EXSTYLE = &H%08x\r\n", pWindowInfo[i].ExStyle);1621 i2+=lstrlen(buffer+i2); 1622 if( pWindowInfo[i].MenuID){1623 sprintf(buffer+i2," MENUID = %s\r\n", pWindowInfo[i].MenuID);1624 i2+=lstrlen(buffer+i2); 1625 } 1626 sprintf(buffer+i2," ID = %d\r\n", pWindowInfo[i].id);1627 i2+=lstrlen(buffer+i2); 1628 sprintf(buffer+i2," BGCOLOR = %d\r\n", pWindowInfo[i].bgColor);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); 1629 1636 i2+=lstrlen(buffer+i2); 1630 1637 sprintf(buffer+i2," FONT = %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\"\r\n", 1631 pWindowInfo[i].LogFont.lfHeight,1632 pWindowInfo[i].LogFont.lfWidth,1633 pWindowInfo[i].LogFont.lfEscapement,1634 pWindowInfo[i].LogFont.lfOrientation,1635 pWindowInfo[i].LogFont.lfWeight,1636 pWindowInfo[i].LogFont.lfItalic,1637 pWindowInfo[i].LogFont.lfUnderline,1638 pWindowInfo[i].LogFont.lfStrikeOut,1639 pWindowInfo[i].LogFont.lfCharSet,1640 pWindowInfo[i].LogFont.lfOutPrecision,1641 pWindowInfo[i].LogFont.lfClipPrecision,1642 pWindowInfo[i].LogFont.lfQuality,1643 pWindowInfo[i].LogFont.lfPitchAndFamily,1644 pWindowInfo[i].LogFont.lfFaceName);1645 i2+=lstrlen(buffer+i2); 1646 if( pWindowInfo[i].IconResName){1647 sprintf(buffer+i2," ICONID = %s\r\n", pWindowInfo[i].IconResName);1648 i2+=lstrlen(buffer+i2); 1649 } 1650 sprintf(buffer+i2," CLASS = \"%s\"\r\n", pWindowInfo[i].ClassName);1651 i2+=lstrlen(buffer+i2); 1652 sprintf(buffer+i2," CALLBACK = %s\r\n", pWindowInfo[i].CallBackName);1653 i2+=lstrlen(buffer+i2); 1654 sprintf(buffer+i2," TYPE = %d\r\n", pWindowInfo[i].type);1655 i2+=lstrlen(buffer+i2); 1656 sprintf(buffer+i2," FILEPATH = %s\r\n", pWindowInfo[i].filepath);1657 i2+=lstrlen(buffer+i2); 1658 for(i3=0;i3< pWindowInfo[i].NumberOfChildWindows;i3++){1659 temporary=SetCaptionSequence( pWindowInfo[i].pChildInfo[i3].caption);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); 1660 1667 sprintf(buffer+i2," ITEM = %s,%d,%d,%d,%d,\"%s\",&H%08x,&H%08x,%d", 1661 pWindowInfo[i].pChildInfo[i3].IdName,1662 pWindowInfo[i].pChildInfo[i3].pos.x,pWindowInfo[i].pChildInfo[i3].pos.y,1663 pWindowInfo[i].pChildInfo[i3].size.cx,pWindowInfo[i].pChildInfo[i3].size.cy,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, 1664 1671 temporary, 1665 pWindowInfo[i].pChildInfo[i3].style,1666 pWindowInfo[i].pChildInfo[i3].ExStyle,1667 pWindowInfo[i].pChildInfo[i3].Control1672 windowInfos[i].pChildInfo[i3].style, 1673 windowInfos[i].pChildInfo[i3].ExStyle, 1674 windowInfos[i].pChildInfo[i3].Control 1668 1675 ); 1669 1676 i2+=lstrlen(buffer+i2); 1670 1677 HeapDefaultFree(temporary); 1671 if( pWindowInfo[i].pChildInfo[i3].Control==CT_IMAGEBOX){1672 sprintf(buffer+i2,",%d,\"%s\"", pWindowInfo[i].pChildInfo[i3].ImageCtrlInfo.type,pWindowInfo[i].pChildInfo[i3].ImageCtrlInfo.path);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); 1673 1680 i2+=lstrlen(buffer+i2); 1674 1681 } … … 1680 1687 } 1681 1688 } 1682 sprintf(buffer+i2,"END\r\n", pWindowInfo[i].name);1689 sprintf(buffer+i2,"END\r\n",windowInfos[i].name); 1683 1690 i2+=lstrlen(buffer+i2); 1684 1691 if(i2-GENERAL_SIZE<GENERAL_SIZE){ … … 1691 1698 i2+=lstrlen(buffer+i2); 1692 1699 i2+=GetSaveMenuData(buffer+i2,1,ProjectInfo.pMenuInfo[i].pMenuInfo,ProjectInfo.pMenuInfo[i].NumberOfMenu); 1693 sprintf(buffer+i2,"END\r\n", pWindowInfo[i].name);1700 sprintf(buffer+i2,"END\r\n",windowInfos[i].name); 1694 1701 i2+=lstrlen(buffer+i2); 1695 1702 if(i2-GENERAL_SIZE<GENERAL_SIZE){ … … 1814 1821 ProjectInfo.pMenuInfo=(MENU_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1); 1815 1822 1816 ProjectInfo.NumberOfWindows=0; 1817 ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapAlloc(hHeap,0,1); 1823 ProjectInfo.windowInfos.clear(); 1818 1824 1819 1825 for(i=0,i3=0;;i++){ … … 1850 1856 //ウィンドウ 1851 1857 if(lstrcmpi(temporary,"WINDOW")==0&&i3==0){ 1852 ProjectInfo.NumberOfWindows++; 1853 ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.pWindowInfo,ProjectInfo.NumberOfWindows*sizeof(WINDOW_INFO)); 1854 i4=ProjectInfo.NumberOfWindows-1; 1858 ProjectInfo.windowInfos.push_back( WINDOW_INFO() ); 1855 1859 i3=1; 1856 1860 1857 ProjectInfo. pWindowInfo[i4].name=(char *)HeapAlloc(hHeap,0,i2+1);1858 lstrcpy(ProjectInfo. pWindowInfo[i4].name,temp2);1859 1860 ProjectInfo. pWindowInfo[i4].NumberOfChildWindows=0;1861 ProjectInfo. pWindowInfo[i4].pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);1861 ProjectInfo.windowInfos.back().name=(char *)HeapAlloc(hHeap,0,i2+1); 1862 lstrcpy(ProjectInfo.windowInfos.back().name,temp2); 1863 1864 ProjectInfo.windowInfos.back().NumberOfChildWindows=0; 1865 ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1); 1862 1866 } 1863 1867 else if(lstrcmpi(temporary,"HANDLE")==0&&i3==1){ 1864 ProjectInfo. pWindowInfo[i4].HandleName=(char *)HeapAlloc(hHeap,0,i2+1);1865 lstrcpy(ProjectInfo. pWindowInfo[i4].HandleName,temp2);1868 ProjectInfo.windowInfos.back().HandleName=(char *)HeapAlloc(hHeap,0,i2+1); 1869 lstrcpy(ProjectInfo.windowInfos.back().HandleName,temp2); 1866 1870 } 1867 1871 else if(lstrcmpi(temporary,"POINT")==0&&i3==1){ 1868 1872 sscanf(temp2,"%d,%d", 1869 &ProjectInfo. pWindowInfo[i4].pos.x,1870 &ProjectInfo. pWindowInfo[i4].pos.y);1871 if(ProjectInfo. pWindowInfo[i4].pos.x==-1) ProjectInfo.pWindowInfo[i4].pos.x=CW_USEDEFAULT;1872 if(ProjectInfo. pWindowInfo[i4].pos.y==-1) ProjectInfo.pWindowInfo[i4].pos.y=CW_USEDEFAULT;1873 &ProjectInfo.windowInfos.back().pos.x, 1874 &ProjectInfo.windowInfos.back().pos.y); 1875 if(ProjectInfo.windowInfos.back().pos.x==-1) ProjectInfo.windowInfos.back().pos.x=CW_USEDEFAULT; 1876 if(ProjectInfo.windowInfos.back().pos.y==-1) ProjectInfo.windowInfos.back().pos.y=CW_USEDEFAULT; 1873 1877 } 1874 1878 else if(lstrcmpi(temporary,"SIZE")==0&&i3==1){ 1875 1879 sscanf(temp2,"%d,%d", 1876 &ProjectInfo. pWindowInfo[i4].size.cx,1877 &ProjectInfo. pWindowInfo[i4].size.cy);1880 &ProjectInfo.windowInfos.back().size.cx, 1881 &ProjectInfo.windowInfos.back().size.cy); 1878 1882 } 1879 1883 else if(lstrcmpi(temporary,"CAPTION")==0&&i3==1){ 1880 1884 if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){ 1881 1885 temp2[lstrlen(temp2)-1]=0; 1882 ProjectInfo. pWindowInfo[i4].caption=(char *)HeapAlloc(hHeap,0,i2+1);1883 lstrcpy(ProjectInfo. pWindowInfo[i4].caption,temp2+1);1886 ProjectInfo.windowInfos.back().caption=(char *)HeapAlloc(hHeap,0,i2+1); 1887 lstrcpy(ProjectInfo.windowInfos.back().caption,temp2+1); 1884 1888 } 1885 1889 } 1886 else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo. pWindowInfo[i4].style=GetValue(temp2);1887 else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo. pWindowInfo[i4].ExStyle=GetValue(temp2);1890 else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.windowInfos.back().style=GetValue(temp2); 1891 else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.windowInfos.back().ExStyle=GetValue(temp2); 1888 1892 else if(lstrcmpi(temporary,"MENUID")==0&&i3==1){ 1889 ProjectInfo. pWindowInfo[i4].MenuID=(char *)HeapAlloc(hHeap,0,i2+1);1890 lstrcpy(ProjectInfo. pWindowInfo[i4].MenuID,temp2);1891 } 1892 else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo. pWindowInfo[i4].id=GetValue(temp2);1893 ProjectInfo.windowInfos.back().MenuID=(char *)HeapAlloc(hHeap,0,i2+1); 1894 lstrcpy(ProjectInfo.windowInfos.back().MenuID,temp2); 1895 } 1896 else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.windowInfos.back().id=GetValue(temp2); 1893 1897 else if(lstrcmpi(temporary,"BGCOLOR")==0&&i3==1){ 1894 ProjectInfo. pWindowInfo[i4].bgColor=GetValue(temp2);1898 ProjectInfo.windowInfos.back().bgColor=GetValue(temp2); 1895 1899 if(ProjectInfo.dwVersion<=3){ 1896 1900 //プロジェクトバージョンが3以前のときは新値に変換する 1897 if(ProjectInfo. pWindowInfo[i4].bgColor==-1)1898 ProjectInfo. pWindowInfo[i4].bgColor=-(int)RGB(255,255,255);1901 if(ProjectInfo.windowInfos.back().bgColor==-1) 1902 ProjectInfo.windowInfos.back().bgColor=-(int)RGB(255,255,255); 1899 1903 } 1900 1904 } 1901 1905 else if(lstrcmpi(temporary,"FONT")==0&&i3==1){ 1902 1906 i5=GetOneParameter(temp2,0,temp3); 1903 ProjectInfo. pWindowInfo[i4].LogFont.lfHeight=GetValue(temp3);1907 ProjectInfo.windowInfos.back().LogFont.lfHeight=GetValue(temp3); 1904 1908 1905 1909 i5=GetOneParameter(temp2,i5,temp3); 1906 ProjectInfo. pWindowInfo[i4].LogFont.lfWidth=GetValue(temp3);1910 ProjectInfo.windowInfos.back().LogFont.lfWidth=GetValue(temp3); 1907 1911 1908 1912 i5=GetOneParameter(temp2,i5,temp3); 1909 ProjectInfo. pWindowInfo[i4].LogFont.lfEscapement=GetValue(temp3);1913 ProjectInfo.windowInfos.back().LogFont.lfEscapement=GetValue(temp3); 1910 1914 1911 1915 i5=GetOneParameter(temp2,i5,temp3); 1912 ProjectInfo. pWindowInfo[i4].LogFont.lfOrientation=GetValue(temp3);1916 ProjectInfo.windowInfos.back().LogFont.lfOrientation=GetValue(temp3); 1913 1917 1914 1918 i5=GetOneParameter(temp2,i5,temp3); 1915 ProjectInfo. pWindowInfo[i4].LogFont.lfWeight=GetValue(temp3);1919 ProjectInfo.windowInfos.back().LogFont.lfWeight=GetValue(temp3); 1916 1920 1917 1921 i5=GetOneParameter(temp2,i5,temp3); 1918 ProjectInfo. pWindowInfo[i4].LogFont.lfItalic=(BYTE)GetValue(temp3);1922 ProjectInfo.windowInfos.back().LogFont.lfItalic=(BYTE)GetValue(temp3); 1919 1923 1920 1924 i5=GetOneParameter(temp2,i5,temp3); 1921 ProjectInfo. pWindowInfo[i4].LogFont.lfUnderline=(BYTE)GetValue(temp3);1925 ProjectInfo.windowInfos.back().LogFont.lfUnderline=(BYTE)GetValue(temp3); 1922 1926 1923 1927 i5=GetOneParameter(temp2,i5,temp3); 1924 ProjectInfo. pWindowInfo[i4].LogFont.lfStrikeOut=(BYTE)GetValue(temp3);1928 ProjectInfo.windowInfos.back().LogFont.lfStrikeOut=(BYTE)GetValue(temp3); 1925 1929 1926 1930 i5=GetOneParameter(temp2,i5,temp3); 1927 ProjectInfo. pWindowInfo[i4].LogFont.lfCharSet=(BYTE)GetValue(temp3);1931 ProjectInfo.windowInfos.back().LogFont.lfCharSet=(BYTE)GetValue(temp3); 1928 1932 1929 1933 i5=GetOneParameter(temp2,i5,temp3); 1930 ProjectInfo. pWindowInfo[i4].LogFont.lfOutPrecision=(BYTE)GetValue(temp3);1934 ProjectInfo.windowInfos.back().LogFont.lfOutPrecision=(BYTE)GetValue(temp3); 1931 1935 1932 1936 i5=GetOneParameter(temp2,i5,temp3); 1933 ProjectInfo. pWindowInfo[i4].LogFont.lfClipPrecision=(BYTE)GetValue(temp3);1937 ProjectInfo.windowInfos.back().LogFont.lfClipPrecision=(BYTE)GetValue(temp3); 1934 1938 1935 1939 i5=GetOneParameter(temp2,i5,temp3); 1936 ProjectInfo. pWindowInfo[i4].LogFont.lfQuality=(BYTE)GetValue(temp3);1940 ProjectInfo.windowInfos.back().LogFont.lfQuality=(BYTE)GetValue(temp3); 1937 1941 1938 1942 i5=GetOneParameter(temp2,i5,temp3); 1939 ProjectInfo. pWindowInfo[i4].LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);1943 ProjectInfo.windowInfos.back().LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3); 1940 1944 1941 1945 i5=GetOneParameter(temp2,i5,temp3); 1942 1946 RemoveStringQuotes(temp3); 1943 lstrcpy(ProjectInfo. pWindowInfo[i4].LogFont.lfFaceName,temp3);1947 lstrcpy(ProjectInfo.windowInfos.back().LogFont.lfFaceName,temp3); 1944 1948 } 1945 1949 else if(lstrcmpi(temporary,"ICONID")==0&&i3==1){ 1946 ProjectInfo. pWindowInfo[i4].IconResName=(char *)HeapAlloc(hHeap,0,i2+1);1947 lstrcpy(ProjectInfo. pWindowInfo[i4].IconResName,temp2);1950 ProjectInfo.windowInfos.back().IconResName=(char *)HeapAlloc(hHeap,0,i2+1); 1951 lstrcpy(ProjectInfo.windowInfos.back().IconResName,temp2); 1948 1952 } 1949 1953 else if(lstrcmpi(temporary,"CLASS")==0&&i3==1){ 1950 1954 if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){ 1951 1955 temp2[lstrlen(temp2)-1]=0; 1952 ProjectInfo. pWindowInfo[i4].ClassName=(char *)HeapAlloc(hHeap,0,i2+1);1953 lstrcpy(ProjectInfo. pWindowInfo[i4].ClassName,temp2+1);1956 ProjectInfo.windowInfos.back().ClassName=(char *)HeapAlloc(hHeap,0,i2+1); 1957 lstrcpy(ProjectInfo.windowInfos.back().ClassName,temp2+1); 1954 1958 } 1955 1959 } 1956 1960 else if(lstrcmpi(temporary,"CALLBACK")==0&&i3==1){ 1957 ProjectInfo. pWindowInfo[i4].CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);1958 lstrcpy(ProjectInfo. pWindowInfo[i4].CallBackName,temp2);1961 ProjectInfo.windowInfos.back().CallBackName=(char *)HeapAlloc(hHeap,0,i2+1); 1962 lstrcpy(ProjectInfo.windowInfos.back().CallBackName,temp2); 1959 1963 } 1960 1964 1961 1965 //以前のバージョンとの互換用 1962 else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo. pWindowInfo[i4].type=GetValue(temp2);1963 1964 else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo. pWindowInfo[i4].type=GetValue(temp2);1966 else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.windowInfos.back().type=GetValue(temp2); 1967 1968 else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.windowInfos.back().type=GetValue(temp2); 1965 1969 else if(lstrcmpi(temporary,"FILEPATH")==0&&i3==1){ 1966 ProjectInfo. pWindowInfo[i4].filepath=(char *)HeapAlloc(hHeap,0,i2+1);1967 lstrcpy(ProjectInfo. pWindowInfo[i4].filepath,temp2);1970 ProjectInfo.windowInfos.back().filepath=(char *)HeapAlloc(hHeap,0,i2+1); 1971 lstrcpy(ProjectInfo.windowInfos.back().filepath,temp2); 1968 1972 } 1969 1973 else if(lstrcmpi(temporary,"ITEM")==0&&i3==1){ 1970 ProjectInfo. pWindowInfo[i4].pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.pWindowInfo[i4].pChildInfo,(ProjectInfo.pWindowInfo[i4].NumberOfChildWindows+1)*sizeof(CHILDINFO));1971 pChildInfo=&ProjectInfo. pWindowInfo[i4].pChildInfo[ProjectInfo.pWindowInfo[i4].NumberOfChildWindows];1974 ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.windowInfos.back().pChildInfo,(ProjectInfo.windowInfos.back().NumberOfChildWindows+1)*sizeof(CHILDINFO)); 1975 pChildInfo=&ProjectInfo.windowInfos.back().pChildInfo[ProjectInfo.windowInfos.back().NumberOfChildWindows]; 1972 1976 1973 1977 //ID … … 2015 2019 } 2016 2020 2017 ProjectInfo. pWindowInfo[i4].NumberOfChildWindows++;2021 ProjectInfo.windowInfos.back().NumberOfChildWindows++; 2018 2022 } 2019 2023 … … 2154 2158 return; 2155 2159 } 2156 for(i=0;i<ProjectInfo. NumberOfWindows;i++){2157 if(lstrcmpi(NewWindow.name,ProjectInfo. pWindowInfo[i].name)==0){2160 for(i=0;i<ProjectInfo.windowInfos.size();i++){ 2161 if(lstrcmpi(NewWindow.name,ProjectInfo.windowInfos[i].name)==0){ 2158 2162 //"\"%s\" ウィンドウは既にプロジェクト内に存在します。" 2159 sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,ProjectInfo. pWindowInfo[i].name);2163 sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,ProjectInfo.windowInfos[i].name); 2160 2164 MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 2161 2165 return; 2162 2166 } 2163 if(lstrcmpi(NewWindow.HandleName,ProjectInfo. pWindowInfo[i].HandleName)==0){2167 if(lstrcmpi(NewWindow.HandleName,ProjectInfo.windowInfos[i].HandleName)==0){ 2164 2168 //"\"%s\" ハンドルは既にプロジェクト内に存在します。" 2165 sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,ProjectInfo. pWindowInfo[i].HandleName);2169 sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,ProjectInfo.windowInfos[i].HandleName); 2166 2170 MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 2167 2171 return; 2168 2172 } 2169 if(lstrcmpi(NewWindow.CallBackName,ProjectInfo. pWindowInfo[i].CallBackName)==0){2173 if(lstrcmpi(NewWindow.CallBackName,ProjectInfo.windowInfos[i].CallBackName)==0){ 2170 2174 //"\"%s\" プロシージャは既にプロジェクト内に存在します。" 2171 sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,ProjectInfo. pWindowInfo[i].CallBackName);2175 sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,ProjectInfo.windowInfos[i].CallBackName); 2172 2176 MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 2173 2177 return; … … 2175 2179 } 2176 2180 2177 //ProjectInfo. pWindowInfo構造体に追加2178 ProjectInfo. pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,0,ProjectInfo.pWindowInfo,(ProjectInfo.NumberOfWindows+1)*sizeof(WINDOW_INFO));2181 //ProjectInfo.windowInfos構造体コレクションに追加 2182 ProjectInfo.windowInfos.push_back( WINDOW_INFO() ); 2179 2183 2180 2184 2181 2185 /////////////////////////////////////// 2182 //ProjectInfo. pWindowInfo構造体を設定2186 //ProjectInfo.windowInfos構造体を設定 2183 2187 2184 2188 //ウィンドウ名 2185 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);2186 lstrcpy(ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].name,NewWindow.name);2189 ProjectInfo.windowInfos.back().name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1); 2190 lstrcpy(ProjectInfo.windowInfos.back().name,NewWindow.name); 2187 2191 2188 2192 //ハンドル名 2189 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1);2190 lstrcpy(ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].HandleName,NewWindow.HandleName);2193 ProjectInfo.windowInfos.back().HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1); 2194 lstrcpy(ProjectInfo.windowInfos.back().HandleName,NewWindow.HandleName); 2191 2195 2192 2196 //位置情報 2193 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].pos.x=-1;2194 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].pos.y=-1;2195 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].size.cx=480;2196 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].size.cy=360;2197 ProjectInfo.windowInfos.back().pos.x=-1; 2198 ProjectInfo.windowInfos.back().pos.y=-1; 2199 ProjectInfo.windowInfos.back().size.cx=480; 2200 ProjectInfo.windowInfos.back().size.cy=360; 2197 2201 2198 2202 //ウィンドウテキスト 2199 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);2200 lstrcpy(ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].caption,NewWindow.name);2203 ProjectInfo.windowInfos.back().caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1); 2204 lstrcpy(ProjectInfo.windowInfos.back().caption,NewWindow.name); 2201 2205 2202 2206 //スタイル … … 2204 2208 case WNDTYPE_DEFAULT: 2205 2209 //通常ウィンドウ 2206 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX;2210 ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX; 2207 2211 break; 2208 2212 case WNDTYPE_MODALDLG: 2209 2213 case WNDTYPE_MODELESSDLG: 2210 2214 //ダイアログ テンプレート(最大化、最小化ボタンをなくして、細枠にする) 2211 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;2215 ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU; 2212 2216 break; 2213 2217 } 2214 2218 2215 2219 //拡張スタイル 2216 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].ExStyle=0;2220 ProjectInfo.windowInfos.back().ExStyle=0; 2217 2221 2218 2222 //メニュー 2219 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].MenuID=0;2223 ProjectInfo.windowInfos.back().MenuID=0; 2220 2224 2221 2225 //ID 2222 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].id=0;2226 ProjectInfo.windowInfos.back().id=0; 2223 2227 2224 2228 //背景色 2225 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].bgColor=COLOR_3DFACE;2229 ProjectInfo.windowInfos.back().bgColor=COLOR_3DFACE; 2226 2230 2227 2231 //フォント 2228 GetDefaultWindowFont(&ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].LogFont);2232 GetDefaultWindowFont(&ProjectInfo.windowInfos.back().LogFont); 2229 2233 2230 2234 //アイコン 2231 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].IconResName=0;2235 ProjectInfo.windowInfos.back().IconResName=0; 2232 2236 2233 2237 //クラス名 2234 2238 lstrcpy(temporary,"NORMAL"); 2235 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);2236 lstrcpy(ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].ClassName,temporary);2239 ProjectInfo.windowInfos.back().ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 2240 lstrcpy(ProjectInfo.windowInfos.back().ClassName,temporary); 2237 2241 2238 2242 //コールバック関数名 2239 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);2240 lstrcpy(ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].CallBackName,NewWindow.CallBackName);2243 ProjectInfo.windowInfos.back().CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1); 2244 lstrcpy(ProjectInfo.windowInfos.back().CallBackName,NewWindow.CallBackName); 2241 2245 2242 2246 //タイプ識別 2243 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].type=NewWindow.type;2247 ProjectInfo.windowInfos.back().type=NewWindow.type; 2244 2248 2245 2249 //子ウィンドウ情報 2246 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].NumberOfChildWindows=0;2247 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);2250 ProjectInfo.windowInfos.back().NumberOfChildWindows=0; 2251 ProjectInfo.windowInfos.back().pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1); 2248 2252 2249 2253 2250 2254 //メッセージ処理ファイル名 2251 sprintf(temporary,"%s.ab",ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].name);2252 ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);2253 lstrcpy(ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].filepath,temporary);2255 sprintf(temporary,"%s.ab",ProjectInfo.windowInfos.back().name); 2256 ProjectInfo.windowInfos.back().filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 2257 lstrcpy(ProjectInfo.windowInfos.back().filepath,temporary); 2254 2258 2255 2259 … … 2269 2273 NewWindow.CallBackName); 2270 2274 2271 sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo. pWindowInfo[ProjectInfo.NumberOfWindows].name);2275 sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back().name); 2272 2276 2273 2277 //書き込み … … 2288 2292 tv.item.iSelectedImage=2; 2289 2293 tv.hParent=ProjectInfo.hWindowTreeItem; 2290 tv.item.pszText=ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].name; 2291 2292 ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv); 2293 2294 TreeView_SelectItem(hMaterialTreeView,ProjectInfo.pWindowInfo[ProjectInfo.NumberOfWindows].hTreeItem); 2295 2296 2297 ProjectInfo.NumberOfWindows++; 2294 tv.item.pszText=ProjectInfo.windowInfos.back().name; 2295 2296 ProjectInfo.windowInfos.back().hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv); 2297 2298 TreeView_SelectItem(hMaterialTreeView,ProjectInfo.windowInfos.back().hTreeItem); 2299 2300 2298 2301 ProjectInfo.ModifyOfMaterial=1; 2299 2302 2300 NewRadWindow(ProjectInfo. NumberOfWindows-1);2303 NewRadWindow(ProjectInfo.windowInfos.size()-1); 2301 2304 } 2302 2305 void Project_Window_Delete(int WndInfoNum){ … … 2306 2309 int i; 2307 2310 2311 WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum]; 2312 2308 2313 //ウィンドウが開かれている場合は閉じる 2309 2314 for(i=0;i<MAX_WNDNUM;i++){ 2310 if(MdiInfo[i].hwnd&&lstrcmpi( ProjectInfo.pWindowInfo[WndInfoNum].name,MdiInfo[i].path)==0){2315 if(MdiInfo[i].hwnd&&lstrcmpi(pWindowInfo->name,MdiInfo[i].path)==0){ 2311 2316 SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0); 2312 2317 break; … … 2315 2320 2316 2321 //ウィンドウ情報のメモリを解放 2317 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].name);2318 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].filepath);2319 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].HandleName);2320 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].caption);2321 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].ClassName);2322 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].CallBackName);2322 HeapDefaultFree(pWindowInfo->name); 2323 HeapDefaultFree(pWindowInfo->filepath); 2324 HeapDefaultFree(pWindowInfo->HandleName); 2325 HeapDefaultFree(pWindowInfo->caption); 2326 HeapDefaultFree(pWindowInfo->ClassName); 2327 HeapDefaultFree(pWindowInfo->CallBackName); 2323 2328 2324 2329 //子ウィンドウのメモリを解放 2325 for(i=0;i< ProjectInfo.pWindowInfo[WndInfoNum].NumberOfChildWindows;i++){2326 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[i].IdName);2327 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[i].caption);2328 } 2329 HeapDefaultFree( ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo);2330 for(i=0;i<pWindowInfo->NumberOfChildWindows;i++){ 2331 HeapDefaultFree(pWindowInfo->pChildInfo[i].IdName); 2332 HeapDefaultFree(pWindowInfo->pChildInfo[i].caption); 2333 } 2334 HeapDefaultFree(pWindowInfo->pChildInfo); 2330 2335 2331 2336 //ツリービューから削除 2332 2337 extern HWND hMaterialTreeView; 2333 TreeView_DeleteItem(hMaterialTreeView,ProjectInfo.pWindowInfo[WndInfoNum].hTreeItem); 2334 2335 //ProjectInfo.pWindowInfo構造体から削除 2336 ProjectInfo.NumberOfWindows--; 2337 for(i=WndInfoNum;i<ProjectInfo.NumberOfWindows;i++) ProjectInfo.pWindowInfo[i]=ProjectInfo.pWindowInfo[i+1]; 2338 if(ProjectInfo.NumberOfWindows==0) ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,0,ProjectInfo.pWindowInfo,1); 2339 else ProjectInfo.pWindowInfo=(WINDOW_INFO *)HeapReAlloc(hHeap,0,ProjectInfo.pWindowInfo,ProjectInfo.NumberOfWindows*sizeof(WINDOW_INFO)); 2338 TreeView_DeleteItem(hMaterialTreeView,pWindowInfo->hTreeItem); 2339 2340 //ProjectInfo.windowInfos構造体から削除 2341 std::vector<WINDOW_INFO>::iterator it = ProjectInfo.windowInfos.begin(); 2342 for( int i=0; i!=WndInfoNum ;i++, it++ ) 2343 { 2344 } 2345 ProjectInfo.windowInfos.erase( it ); 2340 2346 2341 2347 ProjectInfo.ModifyOfMaterial=1;
Note:
See TracChangeset
for help on using the changeset viewer.