Changeset 615 in dev for trunk/ab5.0/abdev/abdev/WindowControl.cpp
- Timestamp:
- May 19, 2008, 7:38:03 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/WindowControl.cpp
r613 r615 15 15 int GetWndInfoNum(char *name){ 16 16 for( int i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){ 17 if(lstrcmpi(name,ProjectInfo.windowInfos[i] .name)==0) return i;17 if(lstrcmpi(name,ProjectInfo.windowInfos[i]->name)==0) return i; 18 18 } 19 19 return -1; 20 20 } 21 W INDOW_INFO*GetWndInfo( char *name )21 WindowInfo *GetWndInfo( char *name ) 22 22 { 23 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )23 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 24 24 { 25 if(lstrcmpi(name, windowInfo.name)==0) return &windowInfo;25 if(lstrcmpi(name,pWindowInfo->name)==0) return pWindowInfo; 26 26 } 27 27 return NULL; … … 86 86 87 87 for(i3--;i3>=0;i3--){ 88 pChildInfo=&ProjectInfo.windowInfos[WndInfoNum] .pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]];88 pChildInfo=&ProjectInfo.windowInfos[WndInfoNum]->pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3]]; 89 89 90 90 MemSize+=lstrlen(pChildInfo->IdName)+1+ … … 352 352 return 1; 353 353 } 354 BOOL GetNotifyCommandByItemMessage(W INDOW_INFO*pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){354 BOOL GetNotifyCommandByItemMessage(WindowInfo *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){ 355 355 int i,i2,i3,sw; 356 356 char temporary[MAX_PATH]; … … 429 429 } 430 430 } 431 void GetCommandByItemMessage(W INDOW_INFO*pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){431 void GetCommandByItemMessage(WindowInfo *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){ 432 432 extern HANDLE hHeap; 433 433 int i,i2,i3; … … 523 523 char temporary[MAX_PATH],*temp2; 524 524 525 W INDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];525 WindowInfo *pWindowInfo = ProjectInfo.windowInfos[WndInfoNum]; 526 526 527 527 Command[0]=0; … … 1003 1003 i4=1000; 1004 1004 i5=0; 1005 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1005 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1006 1006 { 1007 for(i3=0;i3< windowInfo.NumberOfChildWindows;i3++){1007 for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){ 1008 1008 1009 1009 //重複チェック 1010 1010 for(i6=0,sw1=0;i6<i5;i6++){ 1011 if(lstrcmpi(ppNames[i6], windowInfo.pChildInfo[i3].IdName)==0){1011 if(lstrcmpi(ppNames[i6],pWindowInfo->pChildInfo[i3].IdName)==0){ 1012 1012 sw1=1; 1013 1013 break; … … 1017 1017 1018 1018 ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1)); 1019 ppNames[i5]= windowInfo.pChildInfo[i3].IdName;1019 ppNames[i5]=pWindowInfo->pChildInfo[i3].IdName; 1020 1020 i5++; 1021 1021 1022 sprintf(buffer+i2,"Const %s=%d\r\n", windowInfo.pChildInfo[i3].IdName,i4);1022 sprintf(buffer+i2,"Const %s=%d\r\n",pWindowInfo->pChildInfo[i3].IdName,i4); 1023 1023 i2+=lstrlen(buffer+i2); 1024 1024 i4++; … … 1040 1040 1041 1041 //ハンドル変数を定義 1042 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1042 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1043 1043 { 1044 sprintf(buffer+i2,"Dim %s As HWND\r\n", windowInfo.HandleName);1045 i2+=lstrlen(buffer+i2); 1046 sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n", windowInfo.name);1044 sprintf(buffer+i2,"Dim %s As HWND\r\n",pWindowInfo->HandleName); 1045 i2+=lstrlen(buffer+i2); 1046 sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",pWindowInfo->name); 1047 1047 i2+=lstrlen(buffer+i2); 1048 1048 sprintf(buffer+i2,"hFont_%s=CreateFont(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\")\r\n", 1049 windowInfo.name,1050 windowInfo.LogFont.lfHeight,1051 windowInfo.LogFont.lfWidth,1052 windowInfo.LogFont.lfEscapement,1053 windowInfo.LogFont.lfOrientation,1054 windowInfo.LogFont.lfWeight,1055 windowInfo.LogFont.lfItalic,1056 windowInfo.LogFont.lfUnderline,1057 windowInfo.LogFont.lfStrikeOut,1058 windowInfo.LogFont.lfCharSet,1059 windowInfo.LogFont.lfOutPrecision,1060 windowInfo.LogFont.lfClipPrecision,1061 windowInfo.LogFont.lfQuality,1062 windowInfo.LogFont.lfPitchAndFamily,1063 windowInfo.LogFont.lfFaceName);1049 pWindowInfo->name, 1050 pWindowInfo->LogFont.lfHeight, 1051 pWindowInfo->LogFont.lfWidth, 1052 pWindowInfo->LogFont.lfEscapement, 1053 pWindowInfo->LogFont.lfOrientation, 1054 pWindowInfo->LogFont.lfWeight, 1055 pWindowInfo->LogFont.lfItalic, 1056 pWindowInfo->LogFont.lfUnderline, 1057 pWindowInfo->LogFont.lfStrikeOut, 1058 pWindowInfo->LogFont.lfCharSet, 1059 pWindowInfo->LogFont.lfOutPrecision, 1060 pWindowInfo->LogFont.lfClipPrecision, 1061 pWindowInfo->LogFont.lfQuality, 1062 pWindowInfo->LogFont.lfPitchAndFamily, 1063 pWindowInfo->LogFont.lfFaceName); 1064 1064 i2+=lstrlen(buffer+i2); 1065 1065 … … 1076 1076 i2+=lstrlen(buffer+i2); 1077 1077 i=0; 1078 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1078 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1079 1079 { 1080 if( windowInfo.bgColor<=0&&1081 windowInfo.bgColor!=-(int)RGB(255,255,255)&&1082 windowInfo.bgColor!=-(int)RGB(0,0,0)){1080 if(pWindowInfo->bgColor<=0&& 1081 pWindowInfo->bgColor!=-(int)RGB(255,255,255)&& 1082 pWindowInfo->bgColor!=-(int)RGB(0,0,0)){ 1083 1083 sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i); 1084 1084 i2+=lstrlen(buffer+i2); 1085 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,- windowInfo.bgColor);1085 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-pWindowInfo->bgColor); 1086 1086 i2+=lstrlen(buffer+i2); 1087 1087 } 1088 if( windowInfo.bgColor>=0x1000){1088 if(pWindowInfo->bgColor>=0x1000){ 1089 1089 sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i); 1090 1090 i2+=lstrlen(buffer+i2); 1091 1091 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n", 1092 1092 i, 1093 ProjectInfo.res.pBitmapResInfo[ windowInfo.bgColor-0x1000].IdName);1093 ProjectInfo.res.pBitmapResInfo[pWindowInfo->bgColor-0x1000].IdName); 1094 1094 i2+=lstrlen(buffer+i2); 1095 1095 } … … 1102 1102 1103 1103 //イメージ ボックス用の変数を定義 1104 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1104 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1105 1105 { 1106 for(i3=0;i3< windowInfo.NumberOfChildWindows;i3++){1107 if( windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){1108 if(( windowInfo.pChildInfo[i3].style&0x000F)==SS_ICON||1109 ( windowInfo.pChildInfo[i3].style&0x000F)==SS_BITMAP){1110 sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n", windowInfo.name,windowInfo.pChildInfo[i3].IdName);1106 for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){ 1107 if(pWindowInfo->pChildInfo[i3].Control==CT_IMAGEBOX){ 1108 if((pWindowInfo->pChildInfo[i3].style&0x000F)==SS_ICON|| 1109 (pWindowInfo->pChildInfo[i3].style&0x000F)==SS_BITMAP){ 1110 sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",pWindowInfo->name,pWindowInfo->pChildInfo[i3].IdName); 1111 1111 i2+=lstrlen(buffer+i2); 1112 1112 … … 1156 1156 } 1157 1157 1158 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1158 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1159 1159 { 1160 1160 //フォントハンドル解放 1161 sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n", windowInfo.name);1161 sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",pWindowInfo->name); 1162 1162 i2+=lstrlen(buffer+i2); 1163 1163 … … 1172 1172 i2+=lstrlen(buffer+i2); 1173 1173 i=0; 1174 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1174 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1175 1175 { 1176 if( windowInfo.bgColor<=0&&1177 windowInfo.bgColor!=-(int)RGB(255,255,255)&&1178 windowInfo.bgColor!=-(int)RGB(0,0,0)){1176 if(pWindowInfo->bgColor<=0&& 1177 pWindowInfo->bgColor!=-(int)RGB(255,255,255)&& 1178 pWindowInfo->bgColor!=-(int)RGB(0,0,0)){ 1179 1179 sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i); 1180 1180 i2+=lstrlen(buffer+i2); … … 1191 1191 1192 1192 i=0; 1193 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1193 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1194 1194 { 1195 1195 if(i!=0){ … … 1205 1205 ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]); 1206 1206 1207 sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n", windowInfo.name);1207 sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",pWindowInfo->name); 1208 1208 i2+=lstrlen(buffer+i2); 1209 1209 … … 1243 1243 i2+=lstrlen(buffer+i2); 1244 1244 if(sw4){ 1245 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n", windowInfo.name);1245 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",pWindowInfo->name); 1246 1246 i2+=lstrlen(buffer+i2); 1247 1247 } … … 1253 1253 i2+=lstrlen(buffer+i2); 1254 1254 1255 if(GetNotifyCommandByItemMessage( &windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){1255 if(GetNotifyCommandByItemMessage(pWindowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){ 1256 1256 i2+=lstrlen(buffer+i2); 1257 1257 … … 1269 1269 lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n"); 1270 1270 i2+=lstrlen(buffer+i2); 1271 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n", windowInfo.name);1271 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",pWindowInfo->name); 1272 1272 i2+=lstrlen(buffer+i2); 1273 1273 } … … 1281 1281 1282 1282 //pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う 1283 GetCommandByItemMessage( &windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");1283 GetCommandByItemMessage(pWindowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t"); 1284 1284 i2+=lstrlen(buffer+i2); 1285 1285 … … 1292 1292 lstrcpy(buffer+i2,"\t\tCase Else\r\n"); 1293 1293 i2+=lstrlen(buffer+i2); 1294 sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n", windowInfo.name);1294 sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",pWindowInfo->name); 1295 1295 i2+=lstrlen(buffer+i2); 1296 1296 lstrcpy(buffer+i2,"\t\t\tExit Function\r\n"); … … 1300 1300 i2+=lstrlen(buffer+i2); 1301 1301 1302 sprintf(buffer+i2,"\tEventCall_%s=0\r\n", windowInfo.name);1302 sprintf(buffer+i2,"\tEventCall_%s=0\r\n",pWindowInfo->name); 1303 1303 i2+=lstrlen(buffer+i2); 1304 1304 lstrcpy(buffer+i2,"End Function\r\n"); … … 1356 1356 sw1=0; 1357 1357 i=0; 1358 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1358 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1359 1359 { 1360 if( windowInfo.type==WNDTYPE_MODALDLG){1360 if(pWindowInfo->type==WNDTYPE_MODALDLG){ 1361 1361 if(sw1==0){ 1362 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n", windowInfo.name);1362 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->name); 1363 1363 i2+=lstrlen(buffer+i2); 1364 1364 sw1=1; 1365 1365 } 1366 1366 else{ 1367 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n", windowInfo.name);1367 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->name); 1368 1368 i2+=lstrlen(buffer+i2); 1369 1369 } 1370 1370 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", 1371 windowInfo.HandleName,1372 windowInfo.ExStyle,1373 windowInfo.caption,1374 windowInfo.style,1375 windowInfo.pos.x,1376 windowInfo.pos.y,1377 windowInfo.size.cx,1378 windowInfo.size.cy,1379 windowInfo.id);1371 pWindowInfo->HandleName, 1372 pWindowInfo->ExStyle, 1373 pWindowInfo->caption, 1374 pWindowInfo->style, 1375 pWindowInfo->pos.x, 1376 pWindowInfo->pos.y, 1377 pWindowInfo->size.cx, 1378 pWindowInfo->size.cy, 1379 pWindowInfo->id); 1380 1380 i2+=lstrlen(buffer+i2); 1381 1381 sprintf(buffer+i2,"\t\thDlg=%s\r\n", 1382 windowInfo.HandleName);1382 pWindowInfo->HandleName); 1383 1383 i2+=lstrlen(buffer+i2); 1384 1384 if(bAvailUserProc[i]){ 1385 1385 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n", 1386 windowInfo.HandleName,1387 windowInfo.CallBackName);1386 pWindowInfo->HandleName, 1387 pWindowInfo->CallBackName); 1388 1388 } 1389 1389 else{ 1390 1390 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n", 1391 windowInfo.HandleName,1392 windowInfo.name);1393 } 1394 i2+=lstrlen(buffer+i2); 1395 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n", windowInfo.HandleName);1396 i2+=lstrlen(buffer+i2); 1397 if( windowInfo.IconResName){1398 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n", windowInfo.HandleName,windowInfo.IconResName);1391 pWindowInfo->HandleName, 1392 pWindowInfo->name); 1393 } 1394 i2+=lstrlen(buffer+i2); 1395 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",pWindowInfo->HandleName); 1396 i2+=lstrlen(buffer+i2); 1397 if(pWindowInfo->IconResName){ 1398 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",pWindowInfo->HandleName,pWindowInfo->IconResName); 1399 1399 i2+=lstrlen(buffer+i2); 1400 1400 } 1401 sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n", windowInfo.HandleName);1401 sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",pWindowInfo->HandleName); 1402 1402 i2+=lstrlen(buffer+i2); 1403 1403 } … … 1455 1455 i2+=lstrlen(buffer+i2); 1456 1456 i=0; 1457 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1457 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1458 1458 { 1459 if( windowInfo.type==WNDTYPE_MODELESSDLG){1460 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n", windowInfo.name);1459 if(pWindowInfo->type==WNDTYPE_MODELESSDLG){ 1460 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->name); 1461 1461 i2+=lstrlen(buffer+i2); 1462 1462 1463 1463 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", 1464 windowInfo.HandleName,1465 windowInfo.ExStyle,1466 windowInfo.caption,1467 windowInfo.style,1468 windowInfo.pos.x,1469 windowInfo.pos.y,1470 windowInfo.size.cx,1471 windowInfo.size.cy,1472 windowInfo.id);1473 i2+=lstrlen(buffer+i2); 1474 sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n", windowInfo.HandleName);1464 pWindowInfo->HandleName, 1465 pWindowInfo->ExStyle, 1466 pWindowInfo->caption, 1467 pWindowInfo->style, 1468 pWindowInfo->pos.x, 1469 pWindowInfo->pos.y, 1470 pWindowInfo->size.cx, 1471 pWindowInfo->size.cy, 1472 pWindowInfo->id); 1473 i2+=lstrlen(buffer+i2); 1474 sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",pWindowInfo->HandleName); 1475 1475 i2+=lstrlen(buffer+i2); 1476 1476 if(bAvailUserProc[i]){ 1477 1477 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n", 1478 windowInfo.HandleName,1479 windowInfo.CallBackName);1478 pWindowInfo->HandleName, 1479 pWindowInfo->CallBackName); 1480 1480 } 1481 1481 else{ 1482 1482 sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n", 1483 windowInfo.HandleName,1484 windowInfo.name);1485 } 1486 i2+=lstrlen(buffer+i2); 1487 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n", windowInfo.HandleName);1488 i2+=lstrlen(buffer+i2); 1489 if( windowInfo.IconResName){1490 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n", windowInfo.HandleName,windowInfo.IconResName);1483 pWindowInfo->HandleName, 1484 pWindowInfo->name); 1485 } 1486 i2+=lstrlen(buffer+i2); 1487 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",pWindowInfo->HandleName); 1488 i2+=lstrlen(buffer+i2); 1489 if(pWindowInfo->IconResName){ 1490 sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",pWindowInfo->HandleName,pWindowInfo->IconResName); 1491 1491 i2+=lstrlen(buffer+i2); 1492 1492 } 1493 sprintf(buffer+i2,"\tEnd If\r\n", windowInfo.name);1493 sprintf(buffer+i2,"\tEnd If\r\n",pWindowInfo->name); 1494 1494 i2+=lstrlen(buffer+i2); 1495 1495 } … … 1528 1528 1529 1529 i=0; 1530 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1530 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1531 1531 { 1532 if( windowInfo.type==WNDTYPE_DEFAULT){1532 if(pWindowInfo->type==WNDTYPE_DEFAULT){ 1533 1533 ////////////////////// 1534 1534 //通常ウィンドウ作成 … … 1537 1537 i2+=2; 1538 1538 1539 if( windowInfo.IconResName==0){1539 if(pWindowInfo->IconResName==0){ 1540 1540 lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n"); 1541 1541 i2+=lstrlen(buffer+i2); … … 1544 1544 } 1545 1545 else{ 1546 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n", windowInfo.IconResName);1546 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",pWindowInfo->IconResName); 1547 1547 i2+=lstrlen(buffer+i2); 1548 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n", windowInfo.IconResName);1548 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",pWindowInfo->IconResName); 1549 1549 i2+=lstrlen(buffer+i2); 1550 1550 } … … 1553 1553 i2+=lstrlen(buffer+i2); 1554 1554 if(bAvailUserProc[i]) 1555 sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n", windowInfo.CallBackName);1556 else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n", windowInfo.name);1557 i2+=lstrlen(buffer+i2); 1558 if( windowInfo.bgColor==COLOR_3DFACE)1555 sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",pWindowInfo->CallBackName); 1556 else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",pWindowInfo->name); 1557 i2+=lstrlen(buffer+i2); 1558 if(pWindowInfo->bgColor==COLOR_3DFACE) 1559 1559 lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=h3DFaceBrush\r\n"); 1560 else if( windowInfo.bgColor==-(int)RGB(255,255,255))1560 else if(pWindowInfo->bgColor==-(int)RGB(255,255,255)) 1561 1561 lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(WHITE_BRUSH)\r\n"); 1562 else if( windowInfo.bgColor==-(int)RGB(0,0,0))1562 else if(pWindowInfo->bgColor==-(int)RGB(0,0,0)) 1563 1563 lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(BLACK_BRUSH)\r\n"); 1564 else if( windowInfo.bgColor<=0||1565 windowInfo.bgColor>=0x1000){1564 else if(pWindowInfo->bgColor<=0|| 1565 pWindowInfo->bgColor>=0x1000){ 1566 1566 //色指定またはビットマップ 1567 1567 sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i); … … 1571 1571 i2+=lstrlen(buffer+i2); 1572 1572 sprintf(buffer+i2,"CreateWindowEx(&H%08x,\"%s%d\",\"%s\",&H%08x,%d,%d,%d,%d,0,0,GetModuleHandle(0),0)\r\n", 1573 windowInfo.ExStyle,1574 windowInfo.ClassName,i,1575 windowInfo.caption,1576 windowInfo.style,1577 windowInfo.pos.x,1578 windowInfo.pos.y,1579 windowInfo.size.cx,1580 windowInfo.size.cy);1573 pWindowInfo->ExStyle, 1574 pWindowInfo->ClassName,i, 1575 pWindowInfo->caption, 1576 pWindowInfo->style, 1577 pWindowInfo->pos.x, 1578 pWindowInfo->pos.y, 1579 pWindowInfo->size.cx, 1580 pWindowInfo->size.cy); 1581 1581 i2+=lstrlen(buffer+i2); 1582 1582 } … … 1623 1623 return i2; 1624 1624 } 1625 void SaveWindowFile( char *path, const std::vector<WINDOW_INFO>&windowInfos )1625 void SaveWindowFile( char *path, const WindowInfos &windowInfos ) 1626 1626 { 1627 1627 extern HANDLE hHeap; … … 1633 1633 buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size); 1634 1634 i2=0; 1635 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )1635 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 1636 1636 { 1637 sprintf(buffer+i2,"WINDOW:%s\r\n", windowInfo.name);1638 i2+=lstrlen(buffer+i2); 1639 sprintf(buffer+i2," HANDLE = %s\r\n", windowInfo.HandleName);1640 i2+=lstrlen(buffer+i2); 1641 sprintf(buffer+i2," POINT = %d,%d\r\n", windowInfo.pos.x,windowInfo.pos.y);1642 i2+=lstrlen(buffer+i2); 1643 sprintf(buffer+i2," SIZE = %d,%d\r\n", windowInfo.size.cx,windowInfo.size.cy);1644 i2+=lstrlen(buffer+i2); 1645 sprintf(buffer+i2," CAPTION = \"%s\"\r\n", windowInfo.caption);1646 i2+=lstrlen(buffer+i2); 1647 sprintf(buffer+i2," STYLE = &H%08x\r\n", windowInfo.style);1648 i2+=lstrlen(buffer+i2); 1649 sprintf(buffer+i2," EXSTYLE = &H%08x\r\n", windowInfo.ExStyle);1650 i2+=lstrlen(buffer+i2); 1651 if( windowInfo.MenuID){1652 sprintf(buffer+i2," MENUID = %s\r\n", windowInfo.MenuID);1653 i2+=lstrlen(buffer+i2); 1654 } 1655 sprintf(buffer+i2," ID = %d\r\n", windowInfo.id);1656 i2+=lstrlen(buffer+i2); 1657 sprintf(buffer+i2," BGCOLOR = %d\r\n", windowInfo.bgColor);1637 sprintf(buffer+i2,"WINDOW:%s\r\n",pWindowInfo->name); 1638 i2+=lstrlen(buffer+i2); 1639 sprintf(buffer+i2," HANDLE = %s\r\n",pWindowInfo->HandleName); 1640 i2+=lstrlen(buffer+i2); 1641 sprintf(buffer+i2," POINT = %d,%d\r\n",pWindowInfo->pos.x,pWindowInfo->pos.y); 1642 i2+=lstrlen(buffer+i2); 1643 sprintf(buffer+i2," SIZE = %d,%d\r\n",pWindowInfo->size.cx,pWindowInfo->size.cy); 1644 i2+=lstrlen(buffer+i2); 1645 sprintf(buffer+i2," CAPTION = \"%s\"\r\n",pWindowInfo->caption); 1646 i2+=lstrlen(buffer+i2); 1647 sprintf(buffer+i2," STYLE = &H%08x\r\n",pWindowInfo->style); 1648 i2+=lstrlen(buffer+i2); 1649 sprintf(buffer+i2," EXSTYLE = &H%08x\r\n",pWindowInfo->ExStyle); 1650 i2+=lstrlen(buffer+i2); 1651 if(pWindowInfo->MenuID){ 1652 sprintf(buffer+i2," MENUID = %s\r\n",pWindowInfo->MenuID); 1653 i2+=lstrlen(buffer+i2); 1654 } 1655 sprintf(buffer+i2," ID = %d\r\n",pWindowInfo->id); 1656 i2+=lstrlen(buffer+i2); 1657 sprintf(buffer+i2," BGCOLOR = %d\r\n",pWindowInfo->bgColor); 1658 1658 i2+=lstrlen(buffer+i2); 1659 1659 sprintf(buffer+i2," FONT = %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\"\r\n", 1660 windowInfo.LogFont.lfHeight,1661 windowInfo.LogFont.lfWidth,1662 windowInfo.LogFont.lfEscapement,1663 windowInfo.LogFont.lfOrientation,1664 windowInfo.LogFont.lfWeight,1665 windowInfo.LogFont.lfItalic,1666 windowInfo.LogFont.lfUnderline,1667 windowInfo.LogFont.lfStrikeOut,1668 windowInfo.LogFont.lfCharSet,1669 windowInfo.LogFont.lfOutPrecision,1670 windowInfo.LogFont.lfClipPrecision,1671 windowInfo.LogFont.lfQuality,1672 windowInfo.LogFont.lfPitchAndFamily,1673 windowInfo.LogFont.lfFaceName);1674 i2+=lstrlen(buffer+i2); 1675 if( windowInfo.IconResName){1676 sprintf(buffer+i2," ICONID = %s\r\n", windowInfo.IconResName);1677 i2+=lstrlen(buffer+i2); 1678 } 1679 sprintf(buffer+i2," CLASS = \"%s\"\r\n", windowInfo.ClassName);1680 i2+=lstrlen(buffer+i2); 1681 sprintf(buffer+i2," CALLBACK = %s\r\n", windowInfo.CallBackName);1682 i2+=lstrlen(buffer+i2); 1683 sprintf(buffer+i2," TYPE = %d\r\n", windowInfo.type);1684 i2+=lstrlen(buffer+i2); 1685 sprintf(buffer+i2," FILEPATH = %s\r\n", windowInfo.filepath);1686 i2+=lstrlen(buffer+i2); 1687 for(i3=0;i3< windowInfo.NumberOfChildWindows;i3++){1688 temporary=SetCaptionSequence( windowInfo.pChildInfo[i3].caption);1660 pWindowInfo->LogFont.lfHeight, 1661 pWindowInfo->LogFont.lfWidth, 1662 pWindowInfo->LogFont.lfEscapement, 1663 pWindowInfo->LogFont.lfOrientation, 1664 pWindowInfo->LogFont.lfWeight, 1665 pWindowInfo->LogFont.lfItalic, 1666 pWindowInfo->LogFont.lfUnderline, 1667 pWindowInfo->LogFont.lfStrikeOut, 1668 pWindowInfo->LogFont.lfCharSet, 1669 pWindowInfo->LogFont.lfOutPrecision, 1670 pWindowInfo->LogFont.lfClipPrecision, 1671 pWindowInfo->LogFont.lfQuality, 1672 pWindowInfo->LogFont.lfPitchAndFamily, 1673 pWindowInfo->LogFont.lfFaceName); 1674 i2+=lstrlen(buffer+i2); 1675 if(pWindowInfo->IconResName){ 1676 sprintf(buffer+i2," ICONID = %s\r\n",pWindowInfo->IconResName); 1677 i2+=lstrlen(buffer+i2); 1678 } 1679 sprintf(buffer+i2," CLASS = \"%s\"\r\n",pWindowInfo->ClassName); 1680 i2+=lstrlen(buffer+i2); 1681 sprintf(buffer+i2," CALLBACK = %s\r\n",pWindowInfo->CallBackName); 1682 i2+=lstrlen(buffer+i2); 1683 sprintf(buffer+i2," TYPE = %d\r\n",pWindowInfo->type); 1684 i2+=lstrlen(buffer+i2); 1685 sprintf(buffer+i2," FILEPATH = %s\r\n",pWindowInfo->filepath); 1686 i2+=lstrlen(buffer+i2); 1687 for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){ 1688 temporary=SetCaptionSequence(pWindowInfo->pChildInfo[i3].caption); 1689 1689 sprintf(buffer+i2," ITEM = %s,%d,%d,%d,%d,\"%s\",&H%08x,&H%08x,%d", 1690 windowInfo.pChildInfo[i3].IdName,1691 windowInfo.pChildInfo[i3].pos.x,windowInfo.pChildInfo[i3].pos.y,1692 windowInfo.pChildInfo[i3].size.cx,windowInfo.pChildInfo[i3].size.cy,1690 pWindowInfo->pChildInfo[i3].IdName, 1691 pWindowInfo->pChildInfo[i3].pos.x,pWindowInfo->pChildInfo[i3].pos.y, 1692 pWindowInfo->pChildInfo[i3].size.cx,pWindowInfo->pChildInfo[i3].size.cy, 1693 1693 temporary, 1694 windowInfo.pChildInfo[i3].style,1695 windowInfo.pChildInfo[i3].ExStyle,1696 windowInfo.pChildInfo[i3].Control1694 pWindowInfo->pChildInfo[i3].style, 1695 pWindowInfo->pChildInfo[i3].ExStyle, 1696 pWindowInfo->pChildInfo[i3].Control 1697 1697 ); 1698 1698 i2+=lstrlen(buffer+i2); 1699 1699 HeapDefaultFree(temporary); 1700 if( windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){1701 sprintf(buffer+i2,",%d,\"%s\"", windowInfo.pChildInfo[i3].ImageCtrlInfo.type,windowInfo.pChildInfo[i3].ImageCtrlInfo.path);1700 if(pWindowInfo->pChildInfo[i3].Control==CT_IMAGEBOX){ 1701 sprintf(buffer+i2,",%d,\"%s\"",pWindowInfo->pChildInfo[i3].ImageCtrlInfo.type,pWindowInfo->pChildInfo[i3].ImageCtrlInfo.path); 1702 1702 i2+=lstrlen(buffer+i2); 1703 1703 } … … 1709 1709 } 1710 1710 } 1711 sprintf(buffer+i2,"END\r\n", windowInfo.name);1711 sprintf(buffer+i2,"END\r\n",pWindowInfo->name); 1712 1712 i2+=lstrlen(buffer+i2); 1713 1713 if(i2-GENERAL_SIZE<GENERAL_SIZE){ … … 1720 1720 i2+=lstrlen(buffer+i2); 1721 1721 i2+=GetSaveMenuData(buffer+i2,1,ProjectInfo.pMenuInfo[i].pMenuInfo,ProjectInfo.pMenuInfo[i].NumberOfMenu); 1722 sprintf(buffer+i2,"END\r\n",windowInfos[i] .name);1722 sprintf(buffer+i2,"END\r\n",windowInfos[i]->name); 1723 1723 i2+=lstrlen(buffer+i2); 1724 1724 if(i2-GENERAL_SIZE<GENERAL_SIZE){ … … 1841 1841 ProjectInfo.pMenuInfo=(MENU_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1); 1842 1842 1843 ProjectInfo.windowInfos. clear();1843 ProjectInfo.windowInfos.Clear(); 1844 1844 1845 1845 for(i=0,i3=0;;i++){ … … 1876 1876 //ウィンドウ 1877 1877 if(lstrcmpi(temporary,"WINDOW")==0&&i3==0){ 1878 ProjectInfo.windowInfos.push_back( WINDOW_INFO() );1878 ProjectInfo.windowInfos.push_back( new WindowInfo() ); 1879 1879 i3=1; 1880 1880 1881 ProjectInfo.windowInfos.back() .name=(char *)HeapAlloc(hHeap,0,i2+1);1882 lstrcpy(ProjectInfo.windowInfos.back() .name,temp2);1883 1884 ProjectInfo.windowInfos.back() .NumberOfChildWindows=0;1885 ProjectInfo.windowInfos.back() .pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);1881 ProjectInfo.windowInfos.back()->name=(char *)HeapAlloc(hHeap,0,i2+1); 1882 lstrcpy(ProjectInfo.windowInfos.back()->name,temp2); 1883 1884 ProjectInfo.windowInfos.back()->NumberOfChildWindows=0; 1885 ProjectInfo.windowInfos.back()->pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1); 1886 1886 } 1887 1887 else if(lstrcmpi(temporary,"HANDLE")==0&&i3==1){ 1888 ProjectInfo.windowInfos.back() .HandleName=(char *)HeapAlloc(hHeap,0,i2+1);1889 lstrcpy(ProjectInfo.windowInfos.back() .HandleName,temp2);1888 ProjectInfo.windowInfos.back()->HandleName=(char *)HeapAlloc(hHeap,0,i2+1); 1889 lstrcpy(ProjectInfo.windowInfos.back()->HandleName,temp2); 1890 1890 } 1891 1891 else if(lstrcmpi(temporary,"POINT")==0&&i3==1){ 1892 1892 sscanf(temp2,"%d,%d", 1893 &ProjectInfo.windowInfos.back() .pos.x,1894 &ProjectInfo.windowInfos.back() .pos.y);1895 if(ProjectInfo.windowInfos.back() .pos.x==-1) ProjectInfo.windowInfos.back().pos.x=CW_USEDEFAULT;1896 if(ProjectInfo.windowInfos.back() .pos.y==-1) ProjectInfo.windowInfos.back().pos.y=CW_USEDEFAULT;1893 &ProjectInfo.windowInfos.back()->pos.x, 1894 &ProjectInfo.windowInfos.back()->pos.y); 1895 if(ProjectInfo.windowInfos.back()->pos.x==-1) ProjectInfo.windowInfos.back()->pos.x=CW_USEDEFAULT; 1896 if(ProjectInfo.windowInfos.back()->pos.y==-1) ProjectInfo.windowInfos.back()->pos.y=CW_USEDEFAULT; 1897 1897 } 1898 1898 else if(lstrcmpi(temporary,"SIZE")==0&&i3==1){ 1899 1899 sscanf(temp2,"%d,%d", 1900 &ProjectInfo.windowInfos.back() .size.cx,1901 &ProjectInfo.windowInfos.back() .size.cy);1900 &ProjectInfo.windowInfos.back()->size.cx, 1901 &ProjectInfo.windowInfos.back()->size.cy); 1902 1902 } 1903 1903 else if(lstrcmpi(temporary,"CAPTION")==0&&i3==1){ 1904 1904 if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){ 1905 1905 temp2[lstrlen(temp2)-1]=0; 1906 ProjectInfo.windowInfos.back() .caption=(char *)HeapAlloc(hHeap,0,i2+1);1907 lstrcpy(ProjectInfo.windowInfos.back() .caption,temp2+1);1906 ProjectInfo.windowInfos.back()->caption=(char *)HeapAlloc(hHeap,0,i2+1); 1907 lstrcpy(ProjectInfo.windowInfos.back()->caption,temp2+1); 1908 1908 } 1909 1909 } 1910 else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.windowInfos.back() .style=GetValue(temp2);1911 else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.windowInfos.back() .ExStyle=GetValue(temp2);1910 else if(lstrcmpi(temporary,"STYLE")==0&&i3==1) ProjectInfo.windowInfos.back()->style=GetValue(temp2); 1911 else if(lstrcmpi(temporary,"EXSTYLE")==0&&i3==1) ProjectInfo.windowInfos.back()->ExStyle=GetValue(temp2); 1912 1912 else if(lstrcmpi(temporary,"MENUID")==0&&i3==1){ 1913 ProjectInfo.windowInfos.back() .MenuID=(char *)HeapAlloc(hHeap,0,i2+1);1914 lstrcpy(ProjectInfo.windowInfos.back() .MenuID,temp2);1915 } 1916 else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.windowInfos.back() .id=GetValue(temp2);1913 ProjectInfo.windowInfos.back()->MenuID=(char *)HeapAlloc(hHeap,0,i2+1); 1914 lstrcpy(ProjectInfo.windowInfos.back()->MenuID,temp2); 1915 } 1916 else if(lstrcmpi(temporary,"ID")==0&&i3==1) ProjectInfo.windowInfos.back()->id=GetValue(temp2); 1917 1917 else if(lstrcmpi(temporary,"BGCOLOR")==0&&i3==1){ 1918 ProjectInfo.windowInfos.back() .bgColor=GetValue(temp2);1918 ProjectInfo.windowInfos.back()->bgColor=GetValue(temp2); 1919 1919 if(ProjectInfo.dwVersion<=3){ 1920 1920 //プロジェクトバージョンが3以前のときは新値に変換する 1921 if(ProjectInfo.windowInfos.back() .bgColor==-1)1922 ProjectInfo.windowInfos.back() .bgColor=-(int)RGB(255,255,255);1921 if(ProjectInfo.windowInfos.back()->bgColor==-1) 1922 ProjectInfo.windowInfos.back()->bgColor=-(int)RGB(255,255,255); 1923 1923 } 1924 1924 } 1925 1925 else if(lstrcmpi(temporary,"FONT")==0&&i3==1){ 1926 1926 i5=GetOneParameter(temp2,0,temp3); 1927 ProjectInfo.windowInfos.back() .LogFont.lfHeight=GetValue(temp3);1927 ProjectInfo.windowInfos.back()->LogFont.lfHeight=GetValue(temp3); 1928 1928 1929 1929 i5=GetOneParameter(temp2,i5,temp3); 1930 ProjectInfo.windowInfos.back() .LogFont.lfWidth=GetValue(temp3);1930 ProjectInfo.windowInfos.back()->LogFont.lfWidth=GetValue(temp3); 1931 1931 1932 1932 i5=GetOneParameter(temp2,i5,temp3); 1933 ProjectInfo.windowInfos.back() .LogFont.lfEscapement=GetValue(temp3);1933 ProjectInfo.windowInfos.back()->LogFont.lfEscapement=GetValue(temp3); 1934 1934 1935 1935 i5=GetOneParameter(temp2,i5,temp3); 1936 ProjectInfo.windowInfos.back() .LogFont.lfOrientation=GetValue(temp3);1936 ProjectInfo.windowInfos.back()->LogFont.lfOrientation=GetValue(temp3); 1937 1937 1938 1938 i5=GetOneParameter(temp2,i5,temp3); 1939 ProjectInfo.windowInfos.back() .LogFont.lfWeight=GetValue(temp3);1939 ProjectInfo.windowInfos.back()->LogFont.lfWeight=GetValue(temp3); 1940 1940 1941 1941 i5=GetOneParameter(temp2,i5,temp3); 1942 ProjectInfo.windowInfos.back() .LogFont.lfItalic=(BYTE)GetValue(temp3);1942 ProjectInfo.windowInfos.back()->LogFont.lfItalic=(BYTE)GetValue(temp3); 1943 1943 1944 1944 i5=GetOneParameter(temp2,i5,temp3); 1945 ProjectInfo.windowInfos.back() .LogFont.lfUnderline=(BYTE)GetValue(temp3);1945 ProjectInfo.windowInfos.back()->LogFont.lfUnderline=(BYTE)GetValue(temp3); 1946 1946 1947 1947 i5=GetOneParameter(temp2,i5,temp3); 1948 ProjectInfo.windowInfos.back() .LogFont.lfStrikeOut=(BYTE)GetValue(temp3);1948 ProjectInfo.windowInfos.back()->LogFont.lfStrikeOut=(BYTE)GetValue(temp3); 1949 1949 1950 1950 i5=GetOneParameter(temp2,i5,temp3); 1951 ProjectInfo.windowInfos.back() .LogFont.lfCharSet=(BYTE)GetValue(temp3);1951 ProjectInfo.windowInfos.back()->LogFont.lfCharSet=(BYTE)GetValue(temp3); 1952 1952 1953 1953 i5=GetOneParameter(temp2,i5,temp3); 1954 ProjectInfo.windowInfos.back() .LogFont.lfOutPrecision=(BYTE)GetValue(temp3);1954 ProjectInfo.windowInfos.back()->LogFont.lfOutPrecision=(BYTE)GetValue(temp3); 1955 1955 1956 1956 i5=GetOneParameter(temp2,i5,temp3); 1957 ProjectInfo.windowInfos.back() .LogFont.lfClipPrecision=(BYTE)GetValue(temp3);1957 ProjectInfo.windowInfos.back()->LogFont.lfClipPrecision=(BYTE)GetValue(temp3); 1958 1958 1959 1959 i5=GetOneParameter(temp2,i5,temp3); 1960 ProjectInfo.windowInfos.back() .LogFont.lfQuality=(BYTE)GetValue(temp3);1960 ProjectInfo.windowInfos.back()->LogFont.lfQuality=(BYTE)GetValue(temp3); 1961 1961 1962 1962 i5=GetOneParameter(temp2,i5,temp3); 1963 ProjectInfo.windowInfos.back() .LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);1963 ProjectInfo.windowInfos.back()->LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3); 1964 1964 1965 1965 i5=GetOneParameter(temp2,i5,temp3); 1966 1966 RemoveStringQuotes(temp3); 1967 lstrcpy(ProjectInfo.windowInfos.back() .LogFont.lfFaceName,temp3);1967 lstrcpy(ProjectInfo.windowInfos.back()->LogFont.lfFaceName,temp3); 1968 1968 } 1969 1969 else if(lstrcmpi(temporary,"ICONID")==0&&i3==1){ 1970 ProjectInfo.windowInfos.back() .IconResName=(char *)HeapAlloc(hHeap,0,i2+1);1971 lstrcpy(ProjectInfo.windowInfos.back() .IconResName,temp2);1970 ProjectInfo.windowInfos.back()->IconResName=(char *)HeapAlloc(hHeap,0,i2+1); 1971 lstrcpy(ProjectInfo.windowInfos.back()->IconResName,temp2); 1972 1972 } 1973 1973 else if(lstrcmpi(temporary,"CLASS")==0&&i3==1){ 1974 1974 if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){ 1975 1975 temp2[lstrlen(temp2)-1]=0; 1976 ProjectInfo.windowInfos.back() .ClassName=(char *)HeapAlloc(hHeap,0,i2+1);1977 lstrcpy(ProjectInfo.windowInfos.back() .ClassName,temp2+1);1976 ProjectInfo.windowInfos.back()->ClassName=(char *)HeapAlloc(hHeap,0,i2+1); 1977 lstrcpy(ProjectInfo.windowInfos.back()->ClassName,temp2+1); 1978 1978 } 1979 1979 } 1980 1980 else if(lstrcmpi(temporary,"CALLBACK")==0&&i3==1){ 1981 ProjectInfo.windowInfos.back() .CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);1982 lstrcpy(ProjectInfo.windowInfos.back() .CallBackName,temp2);1981 ProjectInfo.windowInfos.back()->CallBackName=(char *)HeapAlloc(hHeap,0,i2+1); 1982 lstrcpy(ProjectInfo.windowInfos.back()->CallBackName,temp2); 1983 1983 } 1984 1984 1985 1985 //以前のバージョンとの互換用 1986 else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.windowInfos.back() .type=GetValue(temp2);1987 1988 else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.windowInfos.back() .type=GetValue(temp2);1986 else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) ProjectInfo.windowInfos.back()->type=GetValue(temp2); 1987 1988 else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) ProjectInfo.windowInfos.back()->type=GetValue(temp2); 1989 1989 else if(lstrcmpi(temporary,"FILEPATH")==0&&i3==1){ 1990 ProjectInfo.windowInfos.back() .filepath=(char *)HeapAlloc(hHeap,0,i2+1);1991 lstrcpy(ProjectInfo.windowInfos.back() .filepath,temp2);1990 ProjectInfo.windowInfos.back()->filepath=(char *)HeapAlloc(hHeap,0,i2+1); 1991 lstrcpy(ProjectInfo.windowInfos.back()->filepath,temp2); 1992 1992 } 1993 1993 else if(lstrcmpi(temporary,"ITEM")==0&&i3==1){ 1994 ProjectInfo.windowInfos.back() .pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.windowInfos.back().pChildInfo,(ProjectInfo.windowInfos.back().NumberOfChildWindows+1)*sizeof(CHILDINFO));1995 pChildInfo=&ProjectInfo.windowInfos.back() .pChildInfo[ProjectInfo.windowInfos.back().NumberOfChildWindows];1994 ProjectInfo.windowInfos.back()->pChildInfo=(CHILDINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,ProjectInfo.windowInfos.back()->pChildInfo,(ProjectInfo.windowInfos.back()->NumberOfChildWindows+1)*sizeof(CHILDINFO)); 1995 pChildInfo=&ProjectInfo.windowInfos.back()->pChildInfo[ProjectInfo.windowInfos.back()->NumberOfChildWindows]; 1996 1996 1997 1997 //ID … … 2039 2039 } 2040 2040 2041 ProjectInfo.windowInfos.back() .NumberOfChildWindows++;2041 ProjectInfo.windowInfos.back()->NumberOfChildWindows++; 2042 2042 } 2043 2043 … … 2176 2176 return; 2177 2177 } 2178 BOOST_FOREACH( W INDOW_INFO &windowInfo, ProjectInfo.windowInfos )2178 BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos ) 2179 2179 { 2180 if(lstrcmpi(NewWindow.name, windowInfo.name)==0){2180 if(lstrcmpi(NewWindow.name,pWindowInfo->name)==0){ 2181 2181 //"\"%s\" ウィンドウは既にプロジェクト内に存在します。" 2182 sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT, windowInfo.name);2182 sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,pWindowInfo->name); 2183 2183 MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 2184 2184 return; 2185 2185 } 2186 if(lstrcmpi(NewWindow.HandleName, windowInfo.HandleName)==0){2186 if(lstrcmpi(NewWindow.HandleName,pWindowInfo->HandleName)==0){ 2187 2187 //"\"%s\" ハンドルは既にプロジェクト内に存在します。" 2188 sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT, windowInfo.HandleName);2188 sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,pWindowInfo->HandleName); 2189 2189 MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 2190 2190 return; 2191 2191 } 2192 if(lstrcmpi(NewWindow.CallBackName, windowInfo.CallBackName)==0){2192 if(lstrcmpi(NewWindow.CallBackName,pWindowInfo->CallBackName)==0){ 2193 2193 //"\"%s\" プロシージャは既にプロジェクト内に存在します。" 2194 sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT, windowInfo.CallBackName);2194 sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,pWindowInfo->CallBackName); 2195 2195 MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 2196 2196 return; … … 2199 2199 2200 2200 //ProjectInfo.windowInfos構造体コレクションに追加 2201 ProjectInfo.windowInfos.push_back( WINDOW_INFO() );2201 ProjectInfo.windowInfos.push_back( new WindowInfo() ); 2202 2202 2203 2203 … … 2206 2206 2207 2207 //ウィンドウ名 2208 ProjectInfo.windowInfos.back() .name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);2209 lstrcpy(ProjectInfo.windowInfos.back() .name,NewWindow.name);2208 ProjectInfo.windowInfos.back()->name=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1); 2209 lstrcpy(ProjectInfo.windowInfos.back()->name,NewWindow.name); 2210 2210 2211 2211 //ハンドル名 2212 ProjectInfo.windowInfos.back() .HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1);2213 lstrcpy(ProjectInfo.windowInfos.back() .HandleName,NewWindow.HandleName);2212 ProjectInfo.windowInfos.back()->HandleName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.HandleName)+1); 2213 lstrcpy(ProjectInfo.windowInfos.back()->HandleName,NewWindow.HandleName); 2214 2214 2215 2215 //位置情報 2216 ProjectInfo.windowInfos.back() .pos.x=-1;2217 ProjectInfo.windowInfos.back() .pos.y=-1;2218 ProjectInfo.windowInfos.back() .size.cx=480;2219 ProjectInfo.windowInfos.back() .size.cy=360;2216 ProjectInfo.windowInfos.back()->pos.x=-1; 2217 ProjectInfo.windowInfos.back()->pos.y=-1; 2218 ProjectInfo.windowInfos.back()->size.cx=480; 2219 ProjectInfo.windowInfos.back()->size.cy=360; 2220 2220 2221 2221 //ウィンドウテキスト 2222 ProjectInfo.windowInfos.back() .caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1);2223 lstrcpy(ProjectInfo.windowInfos.back() .caption,NewWindow.name);2222 ProjectInfo.windowInfos.back()->caption=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.name)+1); 2223 lstrcpy(ProjectInfo.windowInfos.back()->caption,NewWindow.name); 2224 2224 2225 2225 //スタイル … … 2227 2227 case WNDTYPE_DEFAULT: 2228 2228 //通常ウィンドウ 2229 ProjectInfo.windowInfos.back() .style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX;2229 ProjectInfo.windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX; 2230 2230 break; 2231 2231 case WNDTYPE_MODALDLG: 2232 2232 case WNDTYPE_MODELESSDLG: 2233 2233 //ダイアログ テンプレート(最大化、最小化ボタンをなくして、細枠にする) 2234 ProjectInfo.windowInfos.back() .style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;2234 ProjectInfo.windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU; 2235 2235 break; 2236 2236 } 2237 2237 2238 2238 //拡張スタイル 2239 ProjectInfo.windowInfos.back() .ExStyle=0;2239 ProjectInfo.windowInfos.back()->ExStyle=0; 2240 2240 2241 2241 //メニュー 2242 ProjectInfo.windowInfos.back() .MenuID=0;2242 ProjectInfo.windowInfos.back()->MenuID=0; 2243 2243 2244 2244 //ID 2245 ProjectInfo.windowInfos.back() .id=0;2245 ProjectInfo.windowInfos.back()->id=0; 2246 2246 2247 2247 //背景色 2248 ProjectInfo.windowInfos.back() .bgColor=COLOR_3DFACE;2248 ProjectInfo.windowInfos.back()->bgColor=COLOR_3DFACE; 2249 2249 2250 2250 //フォント 2251 GetDefaultWindowFont(&ProjectInfo.windowInfos.back() .LogFont);2251 GetDefaultWindowFont(&ProjectInfo.windowInfos.back()->LogFont); 2252 2252 2253 2253 //アイコン 2254 ProjectInfo.windowInfos.back() .IconResName=0;2254 ProjectInfo.windowInfos.back()->IconResName=0; 2255 2255 2256 2256 //クラス名 2257 2257 lstrcpy(temporary,"NORMAL"); 2258 ProjectInfo.windowInfos.back() .ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);2259 lstrcpy(ProjectInfo.windowInfos.back() .ClassName,temporary);2258 ProjectInfo.windowInfos.back()->ClassName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 2259 lstrcpy(ProjectInfo.windowInfos.back()->ClassName,temporary); 2260 2260 2261 2261 //コールバック関数名 2262 ProjectInfo.windowInfos.back() .CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);2263 lstrcpy(ProjectInfo.windowInfos.back() .CallBackName,NewWindow.CallBackName);2262 ProjectInfo.windowInfos.back()->CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1); 2263 lstrcpy(ProjectInfo.windowInfos.back()->CallBackName,NewWindow.CallBackName); 2264 2264 2265 2265 //タイプ識別 2266 ProjectInfo.windowInfos.back() .type=NewWindow.type;2266 ProjectInfo.windowInfos.back()->type=NewWindow.type; 2267 2267 2268 2268 //子ウィンドウ情報 2269 ProjectInfo.windowInfos.back() .NumberOfChildWindows=0;2270 ProjectInfo.windowInfos.back() .pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);2269 ProjectInfo.windowInfos.back()->NumberOfChildWindows=0; 2270 ProjectInfo.windowInfos.back()->pChildInfo=(CHILDINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1); 2271 2271 2272 2272 2273 2273 //メッセージ処理ファイル名 2274 sprintf(temporary,"%s.ab",ProjectInfo.windowInfos.back() .name);2275 ProjectInfo.windowInfos.back() .filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);2276 lstrcpy(ProjectInfo.windowInfos.back() .filepath,temporary);2274 sprintf(temporary,"%s.ab",ProjectInfo.windowInfos.back()->name); 2275 ProjectInfo.windowInfos.back()->filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 2276 lstrcpy(ProjectInfo.windowInfos.back()->filepath,temporary); 2277 2277 2278 2278 … … 2292 2292 NewWindow.CallBackName); 2293 2293 2294 sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back() .name);2294 sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back()->name); 2295 2295 2296 2296 //書き込み … … 2311 2311 tv.item.iSelectedImage=2; 2312 2312 tv.hParent=ProjectInfo.hWindowTreeItem; 2313 tv.item.pszText=ProjectInfo.windowInfos.back() .name;2314 2315 ProjectInfo.windowInfos.back() .hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv);2316 2317 TreeView_SelectItem(hMaterialTreeView,ProjectInfo.windowInfos.back() .hTreeItem);2313 tv.item.pszText=ProjectInfo.windowInfos.back()->name; 2314 2315 ProjectInfo.windowInfos.back()->hTreeItem=TreeView_InsertItem(hMaterialTreeView,&tv); 2316 2317 TreeView_SelectItem(hMaterialTreeView,ProjectInfo.windowInfos.back()->hTreeItem); 2318 2318 2319 2319 2320 2320 ProjectInfo.ModifyOfMaterial=1; 2321 2321 2322 NewRadWindow( ProjectInfo.windowInfos.back() );2322 NewRadWindow( *ProjectInfo.windowInfos.back() ); 2323 2323 } 2324 2324 void Project_Window_Delete(int WndInfoNum){ … … 2327 2327 int i; 2328 2328 2329 W INDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];2329 WindowInfo *pWindowInfo = ProjectInfo.windowInfos[WndInfoNum]; 2330 2330 2331 2331 //ウィンドウが開かれている場合は閉じる … … 2357 2357 2358 2358 //ProjectInfo.windowInfos構造体から削除 2359 std::vector<WINDOW_INFO>::iterator it = ProjectInfo.windowInfos.begin(); 2360 for( int i=0; i!=WndInfoNum ;i++, it++ ) 2361 { 2362 } 2363 ProjectInfo.windowInfos.erase( it ); 2359 ProjectInfo.windowInfos.Erase( WndInfoNum ); 2364 2360 2365 2361 ProjectInfo.ModifyOfMaterial=1;
Note:
See TracChangeset
for help on using the changeset viewer.