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

WindowInfosクラスを追加。

File:
1 edited

Legend:

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

    r613 r615  
    1515int GetWndInfoNum(char *name){
    1616    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;
    1818    }
    1919    return -1;
    2020}
    21 WINDOW_INFO *GetWndInfo( char *name )
     21WindowInfo *GetWndInfo( char *name )
    2222{
    23     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     23    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    2424    {
    25         if(lstrcmpi(name,windowInfo.name)==0) return &windowInfo;
     25        if(lstrcmpi(name,pWindowInfo->name)==0) return pWindowInfo;
    2626    }
    2727    return NULL;
     
    8686
    8787    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]];
    8989
    9090        MemSize+=lstrlen(pChildInfo->IdName)+1+
     
    352352    return 1;
    353353}
    354 BOOL GetNotifyCommandByItemMessage(WINDOW_INFO *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
     354BOOL GetNotifyCommandByItemMessage(WindowInfo *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
    355355    int i,i2,i3,sw;
    356356    char temporary[MAX_PATH];
     
    429429    }
    430430}
    431 void GetCommandByItemMessage(WINDOW_INFO *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
     431void GetCommandByItemMessage(WindowInfo *pWindowInfo,ITEMEVENTINFO *pItemEventInfo,char *Command,char *spaces){
    432432    extern HANDLE hHeap;
    433433    int i,i2,i3;
     
    523523    char temporary[MAX_PATH],*temp2;
    524524
    525     WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
     525    WindowInfo *pWindowInfo = ProjectInfo.windowInfos[WndInfoNum];
    526526
    527527    Command[0]=0;
     
    10031003    i4=1000;
    10041004    i5=0;
    1005     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1005    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    10061006    {
    1007         for(i3=0;i3<windowInfo.NumberOfChildWindows;i3++){
     1007        for(i3=0;i3<pWindowInfo->NumberOfChildWindows;i3++){
    10081008
    10091009            //重複チェック
    10101010            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){
    10121012                    sw1=1;
    10131013                    break;
     
    10171017
    10181018            ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,sizeof(char *)*(i5+1));
    1019             ppNames[i5]=windowInfo.pChildInfo[i3].IdName;
     1019            ppNames[i5]=pWindowInfo->pChildInfo[i3].IdName;
    10201020            i5++;
    10211021
    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);
    10231023            i2+=lstrlen(buffer+i2);
    10241024            i4++;
     
    10401040
    10411041    //ハンドル変数を定義
    1042     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1042    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    10431043    {
    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);
    10471047        i2+=lstrlen(buffer+i2);
    10481048        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);
    10641064        i2+=lstrlen(buffer+i2);
    10651065
     
    10761076    i2+=lstrlen(buffer+i2);
    10771077    i=0;
    1078     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1078    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    10791079    {
    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)){
    10831083                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10841084                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);
    10861086                i2+=lstrlen(buffer+i2);
    10871087        }
    1088         if(windowInfo.bgColor>=0x1000){
     1088        if(pWindowInfo->bgColor>=0x1000){
    10891089                sprintf(buffer+i2,"Dim _RadSys_hBackBrush%d As HBRUSH\r\n",i);
    10901090                i2+=lstrlen(buffer+i2);
    10911091                sprintf(buffer+i2,"_RadSys_hBackBrush%d=CreatePatternBrush(LoadImage(GetModuleHandle(0),%s,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_SHARED))\r\n",
    10921092                    i,
    1093                     ProjectInfo.res.pBitmapResInfo[windowInfo.bgColor-0x1000].IdName);
     1093                    ProjectInfo.res.pBitmapResInfo[pWindowInfo->bgColor-0x1000].IdName);
    10941094                i2+=lstrlen(buffer+i2);
    10951095        }
     
    11021102
    11031103    //イメージ ボックス用の変数を定義
    1104     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1104    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    11051105    {
    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);
    11111111                    i2+=lstrlen(buffer+i2);
    11121112
     
    11561156    }
    11571157
    1158     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1158    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    11591159    {
    11601160        //フォントハンドル解放
    1161         sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",windowInfo.name);
     1161        sprintf(buffer+i2,"\tDeleteObject(hFont_%s)\r\n",pWindowInfo->name);
    11621162        i2+=lstrlen(buffer+i2);
    11631163
     
    11721172    i2+=lstrlen(buffer+i2);
    11731173    i=0;
    1174     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1174    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    11751175    {
    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)){
    11791179                sprintf(buffer+i2,"\tDeleteObject(_RadSys_hBackBrush%d)\r\n",i);
    11801180                i2+=lstrlen(buffer+i2);
     
    11911191
    11921192    i=0;
    1193     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1193    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    11941194    {
    11951195        if(i!=0){
     
    12051205        ppNames=GetProcedureNamesOfMessageCall(i,&pItemEventInfo,&i3,&bAvailUserProc[i]);
    12061206
    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);
    12081208        i2+=lstrlen(buffer+i2);
    12091209
     
    12431243            i2+=lstrlen(buffer+i2);
    12441244            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);
    12461246                i2+=lstrlen(buffer+i2);
    12471247            }
     
    12531253            i2+=lstrlen(buffer+i2);
    12541254
    1255             if(GetNotifyCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){
     1255            if(GetNotifyCommandByItemMessage(pWindowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t")){
    12561256                i2+=lstrlen(buffer+i2);
    12571257
     
    12691269            lstrcpy(buffer+i2,"\t\tCase WM_NOTIFY\r\n");
    12701270            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);
    12721272            i2+=lstrlen(buffer+i2);
    12731273        }
     
    12811281
    12821282            //pItemEventInfoのIdName、EventNameメンバのメモリ解放はこの関数内で行う
    1283             GetCommandByItemMessage(&windowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");
     1283            GetCommandByItemMessage(pWindowInfo,pItemEventInfo,buffer+i2,"\t\t\t\t");
    12841284            i2+=lstrlen(buffer+i2);
    12851285
     
    12921292        lstrcpy(buffer+i2,"\t\tCase Else\r\n");
    12931293        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);
    12951295        i2+=lstrlen(buffer+i2);
    12961296        lstrcpy(buffer+i2,"\t\t\tExit Function\r\n");
     
    13001300        i2+=lstrlen(buffer+i2);
    13011301
    1302         sprintf(buffer+i2,"\tEventCall_%s=0\r\n",windowInfo.name);
     1302        sprintf(buffer+i2,"\tEventCall_%s=0\r\n",pWindowInfo->name);
    13031303        i2+=lstrlen(buffer+i2);
    13041304        lstrcpy(buffer+i2,"End Function\r\n");
     
    13561356    sw1=0;
    13571357    i=0;
    1358     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1358    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    13591359    {
    1360         if(windowInfo.type==WNDTYPE_MODALDLG){
     1360        if(pWindowInfo->type==WNDTYPE_MODALDLG){
    13611361            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);
    13631363                i2+=lstrlen(buffer+i2);
    13641364                sw1=1;
    13651365            }
    13661366            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);
    13681368                i2+=lstrlen(buffer+i2);
    13691369            }
    13701370            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);
    13801380            i2+=lstrlen(buffer+i2);
    13811381            sprintf(buffer+i2,"\t\thDlg=%s\r\n",
    1382                 windowInfo.HandleName);
     1382                pWindowInfo->HandleName);
    13831383            i2+=lstrlen(buffer+i2);
    13841384            if(bAvailUserProc[i]){
    13851385                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);
    13881388            }
    13891389            else{
    13901390                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);
    13991399                i2+=lstrlen(buffer+i2);
    14001400            }
    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);
    14021402            i2+=lstrlen(buffer+i2);
    14031403        }
     
    14551455    i2+=lstrlen(buffer+i2);
    14561456    i=0;
    1457     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1457    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    14581458    {
    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);
    14611461            i2+=lstrlen(buffer+i2);
    14621462
    14631463            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);
    14751475            i2+=lstrlen(buffer+i2);
    14761476            if(bAvailUserProc[i]){
    14771477                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);
    14801480            }
    14811481            else{
    14821482                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);
    14911491                i2+=lstrlen(buffer+i2);
    14921492            }
    1493             sprintf(buffer+i2,"\tEnd If\r\n",windowInfo.name);
     1493            sprintf(buffer+i2,"\tEnd If\r\n",pWindowInfo->name);
    14941494            i2+=lstrlen(buffer+i2);
    14951495        }
     
    15281528
    15291529    i=0;
    1530     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1530    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    15311531    {
    1532         if(windowInfo.type==WNDTYPE_DEFAULT){
     1532        if(pWindowInfo->type==WNDTYPE_DEFAULT){
    15331533            //////////////////////
    15341534            //通常ウィンドウ作成
     
    15371537            i2+=2;
    15381538
    1539             if(windowInfo.IconResName==0){
     1539            if(pWindowInfo->IconResName==0){
    15401540                lstrcpy(buffer+i2,"_RadSys_wcl.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_APPLICATION))\r\n");
    15411541                i2+=lstrlen(buffer+i2);
     
    15441544            }
    15451545            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);
    15471547                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);
    15491549                i2+=lstrlen(buffer+i2);
    15501550            }
     
    15531553            i2+=lstrlen(buffer+i2);
    15541554            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)
    15591559                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))
    15611561                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))
    15631563                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){
    15661566                //色指定またはビットマップ
    15671567                sprintf(buffer+i2,"_RadSys_wcl.hbrBackground=_RadSys_hBackBrush%d\r\n",i);
     
    15711571            i2+=lstrlen(buffer+i2);
    15721572            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);
    15811581            i2+=lstrlen(buffer+i2);
    15821582        }
     
    16231623    return i2;
    16241624}
    1625 void SaveWindowFile( char *path, const std::vector<WINDOW_INFO> &windowInfos )
     1625void SaveWindowFile( char *path, const WindowInfos &windowInfos )
    16261626{
    16271627    extern HANDLE hHeap;
     
    16331633    buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size);
    16341634    i2=0;
    1635     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     1635    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    16361636    {
    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);
    16581658        i2+=lstrlen(buffer+i2);
    16591659        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);
    16891689            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,
    16931693                temporary,
    1694                 windowInfo.pChildInfo[i3].style,
    1695                 windowInfo.pChildInfo[i3].ExStyle,
    1696                 windowInfo.pChildInfo[i3].Control
     1694                pWindowInfo->pChildInfo[i3].style,
     1695                pWindowInfo->pChildInfo[i3].ExStyle,
     1696                pWindowInfo->pChildInfo[i3].Control
    16971697            );
    16981698            i2+=lstrlen(buffer+i2);
    16991699            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);
    17021702                i2+=lstrlen(buffer+i2);
    17031703            }
     
    17091709            }
    17101710        }
    1711         sprintf(buffer+i2,"END\r\n",windowInfo.name);
     1711        sprintf(buffer+i2,"END\r\n",pWindowInfo->name);
    17121712        i2+=lstrlen(buffer+i2);
    17131713        if(i2-GENERAL_SIZE<GENERAL_SIZE){
     
    17201720        i2+=lstrlen(buffer+i2);
    17211721        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);
    17231723        i2+=lstrlen(buffer+i2);
    17241724        if(i2-GENERAL_SIZE<GENERAL_SIZE){
     
    18411841    ProjectInfo.pMenuInfo=(MENU_INFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
    18421842
    1843     ProjectInfo.windowInfos.clear();
     1843    ProjectInfo.windowInfos.Clear();
    18441844
    18451845    for(i=0,i3=0;;i++){
     
    18761876            //ウィンドウ
    18771877            if(lstrcmpi(temporary,"WINDOW")==0&&i3==0){
    1878                 ProjectInfo.windowInfos.push_back( WINDOW_INFO() );
     1878                ProjectInfo.windowInfos.push_back( new WindowInfo() );
    18791879                i3=1;
    18801880
    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);
    18861886            }
    18871887            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);
    18901890            }
    18911891            else if(lstrcmpi(temporary,"POINT")==0&&i3==1){
    18921892                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;
    18971897            }
    18981898            else if(lstrcmpi(temporary,"SIZE")==0&&i3==1){
    18991899                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);
    19021902            }
    19031903            else if(lstrcmpi(temporary,"CAPTION")==0&&i3==1){
    19041904                if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){
    19051905                    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);
    19081908                }
    19091909            }
    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);
    19121912            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);
    19171917            else if(lstrcmpi(temporary,"BGCOLOR")==0&&i3==1){
    1918                 ProjectInfo.windowInfos.back().bgColor=GetValue(temp2);
     1918                ProjectInfo.windowInfos.back()->bgColor=GetValue(temp2);
    19191919                if(ProjectInfo.dwVersion<=3){
    19201920                    //プロジェクトバージョンが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);
    19231923                }
    19241924            }
    19251925            else if(lstrcmpi(temporary,"FONT")==0&&i3==1){
    19261926                i5=GetOneParameter(temp2,0,temp3);
    1927                 ProjectInfo.windowInfos.back().LogFont.lfHeight=GetValue(temp3);
     1927                ProjectInfo.windowInfos.back()->LogFont.lfHeight=GetValue(temp3);
    19281928
    19291929                i5=GetOneParameter(temp2,i5,temp3);
    1930                 ProjectInfo.windowInfos.back().LogFont.lfWidth=GetValue(temp3);
     1930                ProjectInfo.windowInfos.back()->LogFont.lfWidth=GetValue(temp3);
    19311931
    19321932                i5=GetOneParameter(temp2,i5,temp3);
    1933                 ProjectInfo.windowInfos.back().LogFont.lfEscapement=GetValue(temp3);
     1933                ProjectInfo.windowInfos.back()->LogFont.lfEscapement=GetValue(temp3);
    19341934
    19351935                i5=GetOneParameter(temp2,i5,temp3);
    1936                 ProjectInfo.windowInfos.back().LogFont.lfOrientation=GetValue(temp3);
     1936                ProjectInfo.windowInfos.back()->LogFont.lfOrientation=GetValue(temp3);
    19371937
    19381938                i5=GetOneParameter(temp2,i5,temp3);
    1939                 ProjectInfo.windowInfos.back().LogFont.lfWeight=GetValue(temp3);
     1939                ProjectInfo.windowInfos.back()->LogFont.lfWeight=GetValue(temp3);
    19401940
    19411941                i5=GetOneParameter(temp2,i5,temp3);
    1942                 ProjectInfo.windowInfos.back().LogFont.lfItalic=(BYTE)GetValue(temp3);
     1942                ProjectInfo.windowInfos.back()->LogFont.lfItalic=(BYTE)GetValue(temp3);
    19431943
    19441944                i5=GetOneParameter(temp2,i5,temp3);
    1945                 ProjectInfo.windowInfos.back().LogFont.lfUnderline=(BYTE)GetValue(temp3);
     1945                ProjectInfo.windowInfos.back()->LogFont.lfUnderline=(BYTE)GetValue(temp3);
    19461946
    19471947                i5=GetOneParameter(temp2,i5,temp3);
    1948                 ProjectInfo.windowInfos.back().LogFont.lfStrikeOut=(BYTE)GetValue(temp3);
     1948                ProjectInfo.windowInfos.back()->LogFont.lfStrikeOut=(BYTE)GetValue(temp3);
    19491949
    19501950                i5=GetOneParameter(temp2,i5,temp3);
    1951                 ProjectInfo.windowInfos.back().LogFont.lfCharSet=(BYTE)GetValue(temp3);
     1951                ProjectInfo.windowInfos.back()->LogFont.lfCharSet=(BYTE)GetValue(temp3);
    19521952
    19531953                i5=GetOneParameter(temp2,i5,temp3);
    1954                 ProjectInfo.windowInfos.back().LogFont.lfOutPrecision=(BYTE)GetValue(temp3);
     1954                ProjectInfo.windowInfos.back()->LogFont.lfOutPrecision=(BYTE)GetValue(temp3);
    19551955
    19561956                i5=GetOneParameter(temp2,i5,temp3);
    1957                 ProjectInfo.windowInfos.back().LogFont.lfClipPrecision=(BYTE)GetValue(temp3);
     1957                ProjectInfo.windowInfos.back()->LogFont.lfClipPrecision=(BYTE)GetValue(temp3);
    19581958
    19591959                i5=GetOneParameter(temp2,i5,temp3);
    1960                 ProjectInfo.windowInfos.back().LogFont.lfQuality=(BYTE)GetValue(temp3);
     1960                ProjectInfo.windowInfos.back()->LogFont.lfQuality=(BYTE)GetValue(temp3);
    19611961
    19621962                i5=GetOneParameter(temp2,i5,temp3);
    1963                 ProjectInfo.windowInfos.back().LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);
     1963                ProjectInfo.windowInfos.back()->LogFont.lfPitchAndFamily=(BYTE)GetValue(temp3);
    19641964
    19651965                i5=GetOneParameter(temp2,i5,temp3);
    19661966                RemoveStringQuotes(temp3);
    1967                 lstrcpy(ProjectInfo.windowInfos.back().LogFont.lfFaceName,temp3);
     1967                lstrcpy(ProjectInfo.windowInfos.back()->LogFont.lfFaceName,temp3);
    19681968            }
    19691969            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);
    19721972            }
    19731973            else if(lstrcmpi(temporary,"CLASS")==0&&i3==1){
    19741974                if(temp2[0]=='\"'&&temp2[lstrlen(temp2)-1]=='\"'){
    19751975                    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);
    19781978                }
    19791979            }
    19801980            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);
    19831983            }
    19841984
    19851985            //以前のバージョンとの互換用
    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);
    19891989            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);
    19921992            }
    19931993            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];
    19961996
    19971997                //ID
     
    20392039                }
    20402040
    2041                 ProjectInfo.windowInfos.back().NumberOfChildWindows++;
     2041                ProjectInfo.windowInfos.back()->NumberOfChildWindows++;
    20422042            }
    20432043
     
    21762176        return;
    21772177    }
    2178     BOOST_FOREACH( WINDOW_INFO &windowInfo, ProjectInfo.windowInfos )
     2178    BOOST_FOREACH( WindowInfo *pWindowInfo, ProjectInfo.windowInfos )
    21792179    {
    2180         if(lstrcmpi(NewWindow.name,windowInfo.name)==0){
     2180        if(lstrcmpi(NewWindow.name,pWindowInfo->name)==0){
    21812181            //"\"%s\" ウィンドウは既にプロジェクト内に存在します。"
    2182             sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,windowInfo.name);
     2182            sprintf(temporary,STRING_DUPLICATIONERROR_WINDOW_IN_PROJECT,pWindowInfo->name);
    21832183            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21842184            return;
    21852185        }
    2186         if(lstrcmpi(NewWindow.HandleName,windowInfo.HandleName)==0){
     2186        if(lstrcmpi(NewWindow.HandleName,pWindowInfo->HandleName)==0){
    21872187            //"\"%s\" ハンドルは既にプロジェクト内に存在します。"
    2188             sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,windowInfo.HandleName);
     2188            sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,pWindowInfo->HandleName);
    21892189            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21902190            return;
    21912191        }
    2192         if(lstrcmpi(NewWindow.CallBackName,windowInfo.CallBackName)==0){
     2192        if(lstrcmpi(NewWindow.CallBackName,pWindowInfo->CallBackName)==0){
    21932193            //"\"%s\" プロシージャは既にプロジェクト内に存在します。"
    2194             sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,windowInfo.CallBackName);
     2194            sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,pWindowInfo->CallBackName);
    21952195            MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    21962196            return;
     
    21992199
    22002200    //ProjectInfo.windowInfos構造体コレクションに追加
    2201     ProjectInfo.windowInfos.push_back( WINDOW_INFO() );
     2201    ProjectInfo.windowInfos.push_back( new WindowInfo() );
    22022202
    22032203
     
    22062206
    22072207    //ウィンドウ名
    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);
    22102210
    22112211    //ハンドル名
    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);
    22142214
    22152215    //位置情報
    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;
    22202220
    22212221    //ウィンドウテキスト
    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);
    22242224
    22252225    //スタイル
     
    22272227        case WNDTYPE_DEFAULT:
    22282228            //通常ウィンドウ
    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;
    22302230            break;
    22312231        case WNDTYPE_MODALDLG:
    22322232        case WNDTYPE_MODELESSDLG:
    22332233            //ダイアログ テンプレート(最大化、最小化ボタンをなくして、細枠にする)
    2234             ProjectInfo.windowInfos.back().style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
     2234            ProjectInfo.windowInfos.back()->style=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
    22352235            break;
    22362236    }
    22372237
    22382238    //拡張スタイル
    2239     ProjectInfo.windowInfos.back().ExStyle=0;
     2239    ProjectInfo.windowInfos.back()->ExStyle=0;
    22402240
    22412241    //メニュー
    2242     ProjectInfo.windowInfos.back().MenuID=0;
     2242    ProjectInfo.windowInfos.back()->MenuID=0;
    22432243
    22442244    //ID
    2245     ProjectInfo.windowInfos.back().id=0;
     2245    ProjectInfo.windowInfos.back()->id=0;
    22462246
    22472247    //背景色
    2248     ProjectInfo.windowInfos.back().bgColor=COLOR_3DFACE;
     2248    ProjectInfo.windowInfos.back()->bgColor=COLOR_3DFACE;
    22492249
    22502250    //フォント
    2251     GetDefaultWindowFont(&ProjectInfo.windowInfos.back().LogFont);
     2251    GetDefaultWindowFont(&ProjectInfo.windowInfos.back()->LogFont);
    22522252
    22532253    //アイコン
    2254     ProjectInfo.windowInfos.back().IconResName=0;
     2254    ProjectInfo.windowInfos.back()->IconResName=0;
    22552255
    22562256    //クラス名
    22572257    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);
    22602260
    22612261    //コールバック関数名
    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);
    22642264
    22652265    //タイプ識別
    2266     ProjectInfo.windowInfos.back().type=NewWindow.type;
     2266    ProjectInfo.windowInfos.back()->type=NewWindow.type;
    22672267
    22682268    //子ウィンドウ情報
    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);
    22712271
    22722272
    22732273    //メッセージ処理ファイル名
    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);
    22772277
    22782278
     
    22922292        NewWindow.CallBackName);
    22932293
    2294     sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back().name);
     2294    sprintf(temporary,"%s%s.ab",ProjectInfo.dir,ProjectInfo.windowInfos.back()->name);
    22952295
    22962296    //書き込み
     
    23112311    tv.item.iSelectedImage=2;
    23122312    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);
    23182318
    23192319
    23202320    ProjectInfo.ModifyOfMaterial=1;
    23212321
    2322     NewRadWindow( ProjectInfo.windowInfos.back() );
     2322    NewRadWindow( *ProjectInfo.windowInfos.back() );
    23232323}
    23242324void Project_Window_Delete(int WndInfoNum){
     
    23272327    int i;
    23282328
    2329     WINDOW_INFO *pWindowInfo = &ProjectInfo.windowInfos[WndInfoNum];
     2329    WindowInfo *pWindowInfo = ProjectInfo.windowInfos[WndInfoNum];
    23302330
    23312331    //ウィンドウが開かれている場合は閉じる
     
    23572357
    23582358    //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 );
    23642360
    23652361    ProjectInfo.ModifyOfMaterial=1;
Note: See TracChangeset for help on using the changeset viewer.