Ignore:
Timestamp:
May 18, 2008, 7:15:49 PM (17 years ago)
Author:
dai_9181
Message:

WndInfoNum利用コード周りをリファクタリング中

File:
1 edited

Legend:

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

    r609 r612  
    1515int GetWndInfoNum(char *name){
    1616    extern PROJECTINFO ProjectInfo;
    17     int i;
    18     for(i=0;i<ProjectInfo.windowInfos.size();i++){
     17    for( int i=0;i<static_cast<int>(ProjectInfo.windowInfos.size());i++){
    1918        if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return i;
    2019    }
     
    2423{
    2524    extern PROJECTINFO ProjectInfo;
    26     int i;
    27     for( int i=0;i<ProjectInfo.windowInfos.size();i++)
     25    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
    2826    {
    29         if(lstrcmpi(name,ProjectInfo.windowInfos[i].name)==0) return &ProjectInfo.windowInfos[i];
     27        if(lstrcmpi(name,windowInfo.name)==0) return &windowInfo;
    3028    }
    3129    return NULL;
     
    10081006
    10091007    ppNames=(char **)HeapAlloc(hHeap,0,1);
    1010     for(i=0,i4=1000,i5=0;i<ProjectInfo.windowInfos.size();i++){
    1011         for(i3=0;i3<ProjectInfo.windowInfos[i].NumberOfChildWindows;i3++){
     1008    i4=1000;
     1009    i5=0;
     1010    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1011    {
     1012        for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
    10121013
    10131014            //重複チェック
    10141015            for(i6=0,sw1=0;i6<i5;i6++){
    1015                 if(lstrcmpi(ppNames[i6],ProjectInfo.windowInfos[i].pChildInfo[i3].IdName)==0){
     1016                if(lstrcmpi(ppNames[i6],windowInfo.pChildInfo[i3].IdName)==0){
    10161017                    sw1=1;
    10171018                    break;
     
    10211022
    10221023            ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1));
    1023             ppNames[i5]=ProjectInfo.windowInfos[i].pChildInfo[i3].IdName;
     1024            ppNames[i5]=windowInfo.pChildInfo[i3].IdName;
    10241025            i5++;
    10251026
    1026             sprintf(buffer+i2,"Const %s=%d\r\n",ProjectInfo.windowInfos[i].pChildInfo[i3].IdName,i4);
     1027            sprintf(buffer+i2,"Const %s=%d\r\n",windowInfo.pChildInfo[i3].IdName,i4);
    10271028            i2+=lstrlen(buffer+i2);
    10281029            i4++;
     
    10441045
    10451046    //ハンドル変数を定義
    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);
     1047    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1048    {
     1049        sprintf(buffer+i2,"Dim %s As HWND\r\n",windowInfo.HandleName);
     1050        i2+=lstrlen(buffer+i2);
     1051        sprintf(buffer+i2,"Dim hFont_%s As HFONT\r\n",windowInfo.name);
    10501052        i2+=lstrlen(buffer+i2);
    10511053        sprintf(buffer+i2,"hFont_%s=CreateFont(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\")\r\n",
    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);
     1054            windowInfo.name,
     1055            windowInfo.LogFont.lfHeight,
     1056            windowInfo.LogFont.lfWidth,
     1057            windowInfo.LogFont.lfEscapement,
     1058            windowInfo.LogFont.lfOrientation,
     1059            windowInfo.LogFont.lfWeight,
     1060            windowInfo.LogFont.lfItalic,
     1061            windowInfo.LogFont.lfUnderline,
     1062            windowInfo.LogFont.lfStrikeOut,
     1063            windowInfo.LogFont.lfCharSet,
     1064            windowInfo.LogFont.lfOutPrecision,
     1065            windowInfo.LogFont.lfClipPrecision,
     1066            windowInfo.LogFont.lfQuality,
     1067            windowInfo.LogFont.lfPitchAndFamily,
     1068            windowInfo.LogFont.lfFaceName);
    10671069        i2+=lstrlen(buffer+i2);
    10681070
     
    10781080    lstrcpy(buffer+i2,"h3DFaceBrush=CreateSolidBrush(GetSysColor(COLOR_3DFACE))\r\n");
    10791081    i2+=lstrlen(buffer+i2);
    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)){
     1082    i=0;
     1083    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1084    {
     1085        if(windowInfo.bgColor<=0&&
     1086            windowInfo.bgColor!=-(int)RGB(255,255,255)&&
     1087            windowInfo.bgColor!=-(int)RGB(0,0,0)){
    10841088                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10851089                i2+=lstrlen(buffer+i2);
    1086                 sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-ProjectInfo.windowInfos[i].bgColor);
     1090                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreateSolidBrush(%d)\r\n",i,-windowInfo.bgColor);
    10871091                i2+=lstrlen(buffer+i2);
    10881092        }
    1089         if(ProjectInfo.windowInfos[i].bgColor>=0x1000){
     1093        if(windowInfo.bgColor>=0x1000){
    10901094                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10911095                i2+=lstrlen(buffer+i2);
    10921096                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n",
    10931097                    i,
    1094                     ProjectInfo.res.pBitmapResInfo[ProjectInfo.windowInfos[i].bgColor-0x1000].IdName);
     1098                    ProjectInfo.res.pBitmapResInfo[windowInfo.bgColor-0x1000].IdName);
    10951099                i2+=lstrlen(buffer+i2);
    10961100        }
     1101
     1102        i++;
    10971103    }
    10981104
     
    11011107
    11021108    //イメージ ボックス用の変数を定義
    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);
     1109    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1110    {
     1111        for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
     1112            if(windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){
     1113                if((windowInfo.pChildInfo[i3].style&0x000F)==SS_ICON||
     1114                    (windowInfo.pChildInfo[i3].style&0x000F)==SS_BITMAP){
     1115                    sprintf(buffer+i2,"Dim hImage_%s_%s As HANDLE\r\n",windowInfo.name,windowInfo.pChildInfo[i3].IdName);
    11091116                    i2+=lstrlen(buffer+i2);
    11101117
     
    11541161    }
    11551162
    1156     for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1163    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1164    {
    11571165        //フォントハンドル解放
    1158         sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",ProjectInfo.windowInfos[i].name);
     1166        sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",windowInfo.name);
    11591167        i2+=lstrlen(buffer+i2);
    11601168
     
    11681176    lstrcpy(buffer+i2,"\tDeleteObject(h3DFaceBrush)\r\n");
    11691177    i2+=lstrlen(buffer+i2);
    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)){
     1178    i=0;
     1179    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1180    {
     1181        if(windowInfo.bgColor<=0&&
     1182            windowInfo.bgColor!=-(int)RGB(255,255,255)&&
     1183            windowInfo.bgColor!=-(int)RGB(0,0,0)){
    11741184                sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i);
    11751185                i2+=lstrlen(buffer+i2);
    11761186        }
     1187        i++;
    11771188    }
    11781189
     
    11841195
    11851196
    1186     for(i=0;i<ProjectInfo.windowInfos.size();i++){
     1197    i=0;
     1198    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1199    {
    11871200        if(i!=0){
    11881201            lstrcpy(buffer+i2,"\r\n");
     
    11971210        ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]);
    11981211
    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);
     1212        sprintf(buffer+i2,"Function EventCall_%s(hWnd As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT\r\n",windowInfo.name);
    12001213        i2+=lstrlen(buffer+i2);
    12011214
     
    12351248            i2+=lstrlen(buffer+i2);
    12361249            if(sw4){
    1237                 sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name);
     1250                sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",windowInfo.name);
    12381251                i2+=lstrlen(buffer+i2);
    12391252            }
     
    12451258            i2+=lstrlen(buffer+i2);
    12461259
    1247             if(GetNotifyCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t")){
     1260            if(GetNotifyCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){
    12481261                i2+=lstrlen(buffer+i2);
    12491262
     
    12611274            lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n");
    12621275            i2+=lstrlen(buffer+i2);
    1263             sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",ProjectInfo.windowInfos[i].name);
     1276            sprintf(buffer+i2,"\t\t\t%s_Notify(ByVal (lParam As *NMHDR))\r\n",windowInfo.name);
    12641277            i2+=lstrlen(buffer+i2);
    12651278        }
     
    12731286
    12741287            //pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う
    1275             GetCommandByItemMessage(&ProjectInfo.windowInfos[i],pItemEventInfo,buffer+i2,"\t\t\t\t");
     1288            GetCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");
    12761289            i2+=lstrlen(buffer+i2);
    12771290
     
    12841297        lstrcpy(buffer+i2,"\t\tCase Else\r\n");
    12851298        i2+=lstrlen(buffer+i2);
    1286         sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",ProjectInfo.windowInfos[i].name);
     1299        sprintf(buffer+i2,"\t\t\tEventCall_%s=DefWindowProc(hWnd,message,wParam,lParam)\r\n",windowInfo.name);
    12871300        i2+=lstrlen(buffer+i2);
    12881301        lstrcpy(buffer+i2,"\t\t\tExit Function\r\n");
     
    12921305        i2+=lstrlen(buffer+i2);
    12931306
    1294         sprintf(buffer+i2,"\tEventCall_%s=0\r\n",ProjectInfo.windowInfos[i].name);
     1307        sprintf(buffer+i2,"\tEventCall_%s=0\r\n",windowInfo.name);
    12951308        i2+=lstrlen(buffer+i2);
    12961309        lstrcpy(buffer+i2,"End Function\r\n");
     
    13011314            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    13021315        }
     1316
     1317        i++;
    13031318    }
    13041319
     
    13441359    lstrcpy(buffer+i2,"\tDim hDlg As HWND\r\n");
    13451360    i2+=lstrlen(buffer+i2);
    1346     for(i=0,sw1=0;i<ProjectInfo.windowInfos.size();i++){
    1347         if(ProjectInfo.windowInfos[i].type==WNDTYPE_MODALDLG){
     1361    sw1=0;
     1362    i=0;
     1363    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1364    {
     1365        if(windowInfo.type==WNDTYPE_MODALDLG){
    13481366            if(sw1==0){
    1349                 sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
     1367                sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
    13501368                i2+=lstrlen(buffer+i2);
    13511369                sw1=1;
    13521370            }
    13531371            else{
    1354                 sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",ProjectInfo.windowInfos[i].name);
     1372                sprintf(buffer+i2,"\tElseIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
    13551373                i2+=lstrlen(buffer+i2);
    13561374            }
    13571375            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",
    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);
     1376                windowInfo.HandleName,
     1377                windowInfo.ExStyle,
     1378                windowInfo.caption,
     1379                windowInfo.style,
     1380                windowInfo.pos.x,
     1381                windowInfo.pos.y,
     1382                windowInfo.size.cx,
     1383                windowInfo.size.cy,
     1384                windowInfo.id);
    13671385            i2+=lstrlen(buffer+i2);
    13681386            sprintf(buffer+i2,"\t\thDlg=%s\r\n",
    1369                 ProjectInfo.windowInfos[i].HandleName);
     1387                windowInfo.HandleName);
    13701388            i2+=lstrlen(buffer+i2);
    13711389            if(bAvailUserProc[i]){
    13721390                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    1373                     ProjectInfo.windowInfos[i].HandleName,
    1374                     ProjectInfo.windowInfos[i].CallBackName);
     1391                    windowInfo.HandleName,
     1392                    windowInfo.CallBackName);
    13751393            }
    13761394            else{
    13771395                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
    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);
     1396                    windowInfo.HandleName,
     1397                    windowInfo.name);
     1398            }
     1399            i2+=lstrlen(buffer+i2);
     1400            sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",windowInfo.HandleName);
     1401            i2+=lstrlen(buffer+i2);
     1402            if(windowInfo.IconResName){
     1403                sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",windowInfo.HandleName,windowInfo.IconResName);
    13861404                i2+=lstrlen(buffer+i2);
    13871405            }
    1388             sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",ProjectInfo.windowInfos[i].HandleName);
     1406            sprintf(buffer+i2,"\t\tShowWindow(%s,SW_SHOW)\r\n",windowInfo.HandleName);
    13891407            i2+=lstrlen(buffer+i2);
    13901408        }
     
    13931411            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    13941412        }
     1413        i++;
    13951414    }
    13961415    if(sw1){
     
    14401459    lstrcpy(buffer+i2,"\r\nFunction CreateDialog(hOwnerWnd As HWND, TemplateName As LPSTR) As HWND\r\n");
    14411460    i2+=lstrlen(buffer+i2);
    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);
     1461    i=0;
     1462    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1463    {
     1464        if(windowInfo.type==WNDTYPE_MODELESSDLG){
     1465            sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",windowInfo.name);
    14451466            i2+=lstrlen(buffer+i2);
    14461467
    14471468            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",
    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);
     1469                windowInfo.HandleName,
     1470                windowInfo.ExStyle,
     1471                windowInfo.caption,
     1472                windowInfo.style,
     1473                windowInfo.pos.x,
     1474                windowInfo.pos.y,
     1475                windowInfo.size.cx,
     1476                windowInfo.size.cy,
     1477                windowInfo.id);
     1478            i2+=lstrlen(buffer+i2);
     1479            sprintf(buffer+i2,"\t\tCreateDialog=%s\r\n",windowInfo.HandleName);
    14591480            i2+=lstrlen(buffer+i2);
    14601481            if(bAvailUserProc[i]){
    14611482                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    1462                     ProjectInfo.windowInfos[i].HandleName,
    1463                     ProjectInfo.windowInfos[i].CallBackName);
     1483                    windowInfo.HandleName,
     1484                    windowInfo.CallBackName);
    14641485            }
    14651486            else{
    14661487                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(EventCall_%s) As LONG_PTR)\r\n",
    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);
     1488                    windowInfo.HandleName,
     1489                    windowInfo.name);
     1490            }
     1491            i2+=lstrlen(buffer+i2);
     1492            sprintf(buffer+i2,"\t\tSendMessage(%s,WM_INITDIALOG,0,0)\r\n",windowInfo.HandleName);
     1493            i2+=lstrlen(buffer+i2);
     1494            if(windowInfo.IconResName){
     1495                sprintf(buffer+i2,"\t\tSendMessage(%s,WM_SETICON,ICON_SMALL,LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(%s)) As LPARAM)\r\n",windowInfo.HandleName,windowInfo.IconResName);
    14751496                i2+=lstrlen(buffer+i2);
    14761497            }
    1477             sprintf(buffer+i2,"\tEnd If\r\n",ProjectInfo.windowInfos[i].name);
     1498            sprintf(buffer+i2,"\tEnd If\r\n",windowInfo.name);
    14781499            i2+=lstrlen(buffer+i2);
    14791500        }
     
    14821503            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    14831504        }
     1505        i++;
    14841506    }
    14851507    lstrcpy(buffer+i2,"End Function\r\n");
     
    15101532    i2+=lstrlen(buffer+i2);
    15111533
    1512     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    1513         if(ProjectInfo.windowInfos[i].type==WNDTYPE_DEFAULT){
     1534    i=0;
     1535    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1536    {
     1537        if(windowInfo.type==WNDTYPE_DEFAULT){
    15141538            //////////////////////
    15151539            //通常ウィンドウ作成
     
    15181542            i2+=2;
    15191543
    1520             if(ProjectInfo.windowInfos[i].IconResName==0){
     1544            if(windowInfo.IconResName==0){
    15211545                lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n");
    15221546                i2+=lstrlen(buffer+i2);
     
    15251549            }
    15261550            else{
    1527                 sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName);
     1551                sprintf(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",windowInfo.IconResName);
    15281552                i2+=lstrlen(buffer+i2);
    1529                 sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",ProjectInfo.windowInfos[i].IconResName);
     1553                sprintf(buffer+i2,"_RadSys_wcl.hIconSm=LoadIcon(_RadSys_wcl.hInstance,MAKEINTRESOURCE(%s))\r\n",windowInfo.IconResName);
    15301554                i2+=lstrlen(buffer+i2);
    15311555            }
     
    15341558            i2+=lstrlen(buffer+i2);
    15351559            if(bAvailUserProc[i])
    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)
     1560                sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",windowInfo.CallBackName);
     1561            else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",windowInfo.name);
     1562            i2+=lstrlen(buffer+i2);
     1563            if(windowInfo.bgColor==COLOR_3DFACE)
    15401564                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=h3DFaceBrush\r\n");
    1541             else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(255,255,255))
     1565            else if(windowInfo.bgColor==-(int)RGB(255,255,255))
    15421566                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(WHITE_BRUSH)\r\n");
    1543             else if(ProjectInfo.windowInfos[i].bgColor==-(int)RGB(0,0,0))
     1567            else if(windowInfo.bgColor==-(int)RGB(0,0,0))
    15441568                lstrcpy(buffer+i2,"_RadSys_wcl.hbrBackground=GetStockObject(BLACK_BRUSH)\r\n");
    1545             else if(ProjectInfo.windowInfos[i].bgColor<=0||
    1546                 ProjectInfo.windowInfos[i].bgColor>=0x1000){
     1569            else if(windowInfo.bgColor<=0||
     1570                windowInfo.bgColor>=0x1000){
    15471571                //色指定またはビットマップ
    15481572                sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i);
     
    15521576            i2+=lstrlen(buffer+i2);
    15531577            sprintf(buffer+i2,"CreateWindowEx(&H%08x,\"%s%d\",\"%s\",&H%08x,%d,%d,%d,%d,0,0,GetModuleHandle(0),0)\r\n",
    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);
     1578                windowInfo.ExStyle,
     1579                windowInfo.ClassName,i,
     1580                windowInfo.caption,
     1581                windowInfo.style,
     1582                windowInfo.pos.x,
     1583                windowInfo.pos.y,
     1584                windowInfo.size.cx,
     1585                windowInfo.size.cy);
    15621586            i2+=lstrlen(buffer+i2);
    15631587        }
     
    15671591            buffer=(char *)HeapReAlloc(hHeap,0,buffer,65535*size);
    15681592        }
     1593
     1594        i++;
    15691595    }
    15701596
     
    16121638    size=2;
    16131639    buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size);
    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);
     1640    i2=0;
     1641    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1642    {
     1643        sprintf(buffer+i2,"WINDOW:%s\r\n",windowInfo.name);
     1644        i2+=lstrlen(buffer+i2);
     1645        sprintf(buffer+i2,"    HANDLE    = %s\r\n",windowInfo.HandleName);
     1646        i2+=lstrlen(buffer+i2);
     1647        sprintf(buffer+i2,"    POINT     = %d,%d\r\n",windowInfo.pos.x,windowInfo.pos.y);
     1648        i2+=lstrlen(buffer+i2);
     1649        sprintf(buffer+i2,"    SIZE      = %d,%d\r\n",windowInfo.size.cx,windowInfo.size.cy);
     1650        i2+=lstrlen(buffer+i2);
     1651        sprintf(buffer+i2,"    CAPTION   = \"%s\"\r\n",windowInfo.caption);
     1652        i2+=lstrlen(buffer+i2);
     1653        sprintf(buffer+i2,"    STYLE     = &H%08x\r\n",windowInfo.style);
     1654        i2+=lstrlen(buffer+i2);
     1655        sprintf(buffer+i2,"    EXSTYLE   = &H%08x\r\n",windowInfo.ExStyle);
     1656        i2+=lstrlen(buffer+i2);
     1657        if(windowInfo.MenuID){
     1658            sprintf(buffer+i2,"    MENUID    = %s\r\n",windowInfo.MenuID);
     1659            i2+=lstrlen(buffer+i2);
     1660        }
     1661        sprintf(buffer+i2,"    ID        = %d\r\n",windowInfo.id);
     1662        i2+=lstrlen(buffer+i2);
     1663        sprintf(buffer+i2,"    BGCOLOR   = %d\r\n",windowInfo.bgColor);
    16361664        i2+=lstrlen(buffer+i2);
    16371665        sprintf(buffer+i2,"    FONT      = %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\"\r\n",
    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);
     1666            windowInfo.LogFont.lfHeight,
     1667            windowInfo.LogFont.lfWidth,
     1668            windowInfo.LogFont.lfEscapement,
     1669            windowInfo.LogFont.lfOrientation,
     1670            windowInfo.LogFont.lfWeight,
     1671            windowInfo.LogFont.lfItalic,
     1672            windowInfo.LogFont.lfUnderline,
     1673            windowInfo.LogFont.lfStrikeOut,
     1674            windowInfo.LogFont.lfCharSet,
     1675            windowInfo.LogFont.lfOutPrecision,
     1676            windowInfo.LogFont.lfClipPrecision,
     1677            windowInfo.LogFont.lfQuality,
     1678            windowInfo.LogFont.lfPitchAndFamily,
     1679            windowInfo.LogFont.lfFaceName);
     1680        i2+=lstrlen(buffer+i2);
     1681        if(windowInfo.IconResName){
     1682            sprintf(buffer+i2,"    ICONID    = %s\r\n",windowInfo.IconResName);
     1683            i2+=lstrlen(buffer+i2);
     1684        }
     1685        sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",windowInfo.ClassName);
     1686        i2+=lstrlen(buffer+i2);
     1687        sprintf(buffer+i2,"    CALLBACK  = %s\r\n",windowInfo.CallBackName);
     1688        i2+=lstrlen(buffer+i2);
     1689        sprintf(buffer+i2,"    TYPE      = %d\r\n",windowInfo.type);
     1690        i2+=lstrlen(buffer+i2);
     1691        sprintf(buffer+i2,"    FILEPATH  = %s\r\n",windowInfo.filepath);
     1692        i2+=lstrlen(buffer+i2);
     1693        for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
     1694            temporary=SetCaptionSequence(windowInfo.pChildInfo[i3].caption);
    16671695            sprintf(buffer+i2,"    ITEM      = %s,%d,%d,%d,%d,\"%s\",&H%08x,&H%08x,%d",
    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,
     1696                windowInfo.pChildInfo[i3].IdName,
     1697                windowInfo.pChildInfo[i3].pos.x,windowInfo.pChildInfo[i3].pos.y,
     1698                windowInfo.pChildInfo[i3].size.cx,windowInfo.pChildInfo[i3].size.cy,
    16711699                temporary,
    1672                 windowInfos[i].pChildInfo[i3].style,
    1673                 windowInfos[i].pChildInfo[i3].ExStyle,
    1674                 windowInfos[i].pChildInfo[i3].Control
     1700                windowInfo.pChildInfo[i3].style,
     1701                windowInfo.pChildInfo[i3].ExStyle,
     1702                windowInfo.pChildInfo[i3].Control
    16751703            );
    16761704            i2+=lstrlen(buffer+i2);
    16771705            HeapDefaultFree(temporary);
    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);
     1706            if(windowInfo.pChildInfo[i3].Control==CT_IMAGEBOX){
     1707                sprintf(buffer+i2,",%d,\"%s\"",windowInfo.pChildInfo[i3].ImageCtrlInfo.type,windowInfo.pChildInfo[i3].ImageCtrlInfo.path);
    16801708                i2+=lstrlen(buffer+i2);
    16811709            }
     
    16871715            }
    16881716        }
    1689         sprintf(buffer+i2,"END\r\n",windowInfos[i].name);
     1717        sprintf(buffer+i2,"END\r\n",windowInfo.name);
    16901718        i2+=lstrlen(buffer+i2);
    16911719        if(i2-GENERAL_SIZE<GENERAL_SIZE){
     
    21462174    extern HANDLE hHeap;
    21472175    extern PROJECTINFO ProjectInfo;
    2148     int i;
    21492176    char temporary[MAX_PATH],temp2[1024],*pTemp;
    21502177
     
    21582185        return;
    21592186    }
    2160     for(i=0;i<ProjectInfo.windowInfos.size();i++){
    2161         if(lstrcmpi(NewWindow.name,ProjectInfo.windowInfos[i].name)==0){
     2187    BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     2188    {
     2189        if(lstrcmpi(NewWindow.name,windowInfo.name)==0){
    21622190            //"\"%s\" ウィンドウは既にプロジェクト内に存在します。"
    2163             sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,ProjectInfo.windowInfos[i].name);
     2191            sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,windowInfo.name);
    21642192            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21652193            return;
    21662194        }
    2167         if(lstrcmpi(NewWindow.HandleName,ProjectInfo.windowInfos[i].HandleName)==0){
     2195        if(lstrcmpi(NewWindow.HandleName,windowInfo.HandleName)==0){
    21682196            //"\"%s\" ハンドルは既にプロジェクト内に存在します。"
    2169             sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,ProjectInfo.windowInfos[i].HandleName);
     2197            sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,windowInfo.HandleName);
    21702198            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21712199            return;
    21722200        }
    2173         if(lstrcmpi(NewWindow.CallBackName,ProjectInfo.windowInfos[i].CallBackName)==0){
     2201        if(lstrcmpi(NewWindow.CallBackName,windowInfo.CallBackName)==0){
    21742202            //"\"%s\" プロシージャは既にプロジェクト内に存在します。"
    2175             sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,ProjectInfo.windowInfos[i].CallBackName);
     2203            sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,windowInfo.CallBackName);
    21762204            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21772205            return;
     
    23012329    ProjectInfo.ModifyOfMaterial=1;
    23022330
    2303     NewRadWindow(ProjectInfo.windowInfos.size()-1);
     2331    NewRadWindow( ProjectInfo.windowInfos.back() );
    23042332}
    23052333void Project_Window_Delete(int WndInfoNum){
Note: See TracChangeset for help on using the changeset viewer.