Changeset 629 in dev for trunk


Ignore:
Timestamp:
Jun 2, 2008, 11:50:24 PM (16 years ago)
Author:
dai_9181
Message:

MDIINFO構造体をリファクタリング。

Location:
trunk/ab5.0/abdev
Files:
61 edited

Legend:

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

    r626 r629  
    4949
    5050    for(i=0;i<MdiInfo.size();i++){
    51         if(MdiInfo[i].hwnd){
     51        if(MdiInfo[i]->hwnd){
    5252            int WndNum;
    5353            WndNum=i;
    5454
    55             if(!IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)) continue;
     55            if(!IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)) continue;
    5656
    5757            //ファイルを保存
    5858            sprintf(temporary,"%sdocument%02d.txt",szBackupDirPath,iNum);
    59             WriteBuffer(temporary,MdiInfo[WndNum].pMdiTextEdit->buffer,lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer), false);
     59            WriteBuffer(temporary,MdiInfo[WndNum]->pMdiTextEdit->buffer,lstrlen(MdiInfo[WndNum]->pMdiTextEdit->buffer), false);
    6060
    6161            //情報を追加
    62             sprintf(temp2+lstrlen(temp2),"%s\r\n",MdiInfo[WndNum].path.c_str());
     62            sprintf(temp2+lstrlen(temp2),"%s\r\n",MdiInfo[WndNum]->path.c_str());
    6363
    6464            iNum++;
     
    107107
    108108        char szOldTitle[MAX_PATH];
    109         lstrcpy(szOldTitle,MdiInfo[WndNum].title.c_str());
     109        lstrcpy(szOldTitle,MdiInfo[WndNum]->title.c_str());
    110110
    111111        //ドキュメント セレクト コンボボックスから消去
    112112        extern HWND hDocCombo;
    113         i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title.c_str());
     113        i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum]->title.c_str());
    114114        SendMessage(hDocCombo,CB_DELETESTRING,i2,0);
    115115
    116116        //パスを変更
    117         MdiInfo[WndNum].path = szBeforeFilePath;
     117        MdiInfo[WndNum]->path = szBeforeFilePath;
    118118
    119119        //ドキュメント セレクト コンボボックスに挿入
     
    129129        }
    130130        DuplicateTitleCheck(str);
    131         MdiInfo[WndNum].title = str;
    132         SendMessage(hDocCombo,CB_ADDSTRING,0,(long)MdiInfo[WndNum].title.c_str());
    133         i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title.c_str());
     131        MdiInfo[WndNum]->title = str;
     132        SendMessage(hDocCombo,CB_ADDSTRING,0,(long)MdiInfo[WndNum]->title.c_str());
     133        i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum]->title.c_str());
    134134        SendMessage(hDocCombo,CB_SETCURSEL,i2,0);
    135135
    136136        //MDIウィンドウのタイトルを再設定
    137         SetWindowText(hChild,MdiInfo[WndNum].title.c_str());
     137        SetWindowText(hChild,MdiInfo[WndNum]->title.c_str());
    138138
    139139        //タブコントロールを再設定
    140140        COLORREF TabColor;
    141         TabColor=pobj_nv->pobj_ExtLink->GetTabColorFromFilePath(MdiInfo[WndNum].path);
     141        TabColor=pobj_nv->pobj_ExtLink->GetTabColorFromFilePath(MdiInfo[WndNum]->path);
    142142        pobj_MainTab->DeleteItem( szOldTitle, false );
    143         pobj_MainTab->InsertItem( MdiInfo[WndNum].title.c_str(), false, TabColor );
    144 
    145         MdiInfo[WndNum].pMdiTextEdit->Modify();
     143        pobj_MainTab->InsertItem( MdiInfo[WndNum]->title.c_str(), false, TabColor );
     144
     145        MdiInfo[WndNum]->pMdiTextEdit->Modify();
    146146
    147147
  • trunk/ab5.0/abdev/abdev/Caret.cpp

    r625 r629  
    124124
    125125    pCharRange->cpMin=GetBufferIndexFromCaretPos(
    126         MdiInfo[WndNum].pMdiTextEdit->buffer,
    127         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
    128         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    129 
    130     if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
    131         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y){
     126        MdiInfo[WndNum]->pMdiTextEdit->buffer,
     127        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x,
     128        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
     129
     130    if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&&
     131        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y){
    132132        //選択されていないとき
    133133        pCharRange->cpMax=pCharRange->cpMin;
     
    135135    else{
    136136        pCharRange->cpMax=GetBufferIndexFromCaretPos(
    137             MdiInfo[WndNum].pMdiTextEdit->buffer,
    138             MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x,
    139             MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y);
     137            MdiInfo[WndNum]->pMdiTextEdit->buffer,
     138            MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x,
     139            MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y);
    140140    }
    141141
     
    150150
    151151    memcpy(buffer,
    152         MdiInfo[WndNum].pMdiTextEdit->buffer+pCharRange->cpMin,
     152        MdiInfo[WndNum]->pMdiTextEdit->buffer+pCharRange->cpMin,
    153153        pCharRange->cpMax-pCharRange->cpMin);
    154154    buffer[pCharRange->cpMax-pCharRange->cpMin]=0;
     
    158158
    159159    HWND hEdit;
    160     hEdit=MdiInfo[WndNum].pMdiTextEdit->hEdit;
     160    hEdit=MdiInfo[WndNum]->pMdiTextEdit->hEdit;
    161161
    162162    //垂直スクロールバーの位置
     
    175175
    176176    HWND hEdit;
    177     hEdit=GetWindow(MdiInfo[WndNum].hwnd,GW_CHILD);
     177    hEdit=GetWindow(MdiInfo[WndNum]->hwnd,GW_CHILD);
    178178
    179179    //垂直スクロールバーの位置
     
    192192
    193193    GetCaretPosFromBufferIndex(
    194         MdiInfo[WndNum].pMdiTextEdit->buffer,
     194        MdiInfo[WndNum]->pMdiTextEdit->buffer,
    195195        StartIndex,
    196         &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     196        &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos);
    197197
    198198    GetCaretPosFromBufferIndex(
    199         MdiInfo[WndNum].pMdiTextEdit->buffer,
     199        MdiInfo[WndNum]->pMdiTextEdit->buffer,
    200200        EndIndex,
    201         &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
     201        &MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos);
    202202
    203203    HWND hEdit;
    204     hEdit=GetWindow(MdiInfo[WndNum].hwnd,GW_CHILD);
     204    hEdit=GetWindow(MdiInfo[WndNum]->hwnd,GW_CHILD);
    205205
    206206    if(!TextEdit_ScrollCaret(WndNum,0,bShowCenter))
     
    218218    int iStartPos;
    219219    iStartPos=code_pos;
    220     while(MdiInfo[WndNum].pMdiTextEdit->buffer[iStartPos]!='\n'&&iStartPos>0) iStartPos--;
    221     if(MdiInfo[WndNum].pMdiTextEdit->buffer[iStartPos]=='\n') iStartPos++;
     220    while(MdiInfo[WndNum]->pMdiTextEdit->buffer[iStartPos]!='\n'&&iStartPos>0) iStartPos--;
     221    if(MdiInfo[WndNum]->pMdiTextEdit->buffer[iStartPos]=='\n') iStartPos++;
    222222
    223223    int iEndPos;
    224224    iEndPos=code_pos;
    225     while(MdiInfo[WndNum].pMdiTextEdit->buffer[iEndPos]!='\r'&&MdiInfo[WndNum].pMdiTextEdit->buffer[iEndPos]!='\0') iEndPos++;
     225    while(MdiInfo[WndNum]->pMdiTextEdit->buffer[iEndPos]!='\r'&&MdiInfo[WndNum]->pMdiTextEdit->buffer[iEndPos]!='\0') iEndPos++;
    226226
    227227    TextEdit_SetSel(WndNum,iStartPos,iEndPos,bShowCenter);
     
    234234    GetCaretPos(&OldPos);
    235235
    236     x=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
    237     y=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
     236    x=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x;
     237    y=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y;
    238238    GetScrollBaseCaretPos(WndNum,&x,&y);
    239239
    240240    //エディタ画面左端のコントロールタブ
    241241    int iControlTabSpace;
    242     iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
     242    iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace;
    243243
    244244    //コントロールタブ上にカーソルがきたときに、非表示にする
    245     if(OldPos.x>=iControlTabSpace&&x<0) HideCaret(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    246     else if(OldPos.x<iControlTabSpace&&x>=0) ShowCaret(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     245    if(OldPos.x>=iControlTabSpace&&x<0) HideCaret(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
     246    else if(OldPos.x<iControlTabSpace&&x>=0) ShowCaret(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
    247247
    248248    SetCaretPos(
     
    256256    // Web検索文字列
    257257    //////////////////////////////////////////////
    258     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     258    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    259259        int start,end;
    260         if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
    261             MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y){
     260        if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&&
     261            MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y){
    262262            //文字列を選択中でないとき
    263263
    264264            int sw=0;
    265265            if(bInputAndReset){
    266                 if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x>1){
    267                     MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x-=2;
     266                if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x>1){
     267                    MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x-=2;
    268268                    sw=1;
    269269                }
     
    271271
    272272            TextEdit_GetWordCaret(
    273                 MdiInfo[WndNum].pMdiTextEdit->hEdit,
     273                MdiInfo[WndNum]->pMdiTextEdit->hEdit,
    274274                WndNum,
    275                 &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos,
     275                &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos,
    276276                &start,&end,
    277277                WORDCARET_BEFORE);
    278278
    279             if(sw) MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x+=2;
     279            if(sw) MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x+=2;
    280280
    281281            //半角文字列を選択時の全角とのズレを修正
    282282            POINT pos;
    283             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,start,&pos);
    284             start=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,pos.x,pos.y);
    285             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,end,&pos);
    286             end=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,pos.x,pos.y);
     283            GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,start,&pos);
     284            start=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,pos.x,pos.y);
     285            GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,end,&pos);
     286            end=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,pos.x,pos.y);
    287287        }
    288288        else{
    289289            //文字列を選択中のとき
    290290            start=GetBufferIndexFromCaretPos(
    291                 MdiInfo[WndNum].pMdiTextEdit->buffer,
    292                 MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
    293                 MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     291                MdiInfo[WndNum]->pMdiTextEdit->buffer,
     292                MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x,
     293                MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
    294294            end=GetBufferIndexFromCaretPos(
    295                 MdiInfo[WndNum].pMdiTextEdit->buffer,
    296                 MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x,
    297                 MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y);
     295                MdiInfo[WndNum]->pMdiTextEdit->buffer,
     296                MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x,
     297                MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y);
    298298        }
    299299
     
    310310        if(length<0) length=0;
    311311        pTemp=(char *)HeapAlloc(hHeap,0,length+1024);
    312         memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+start,length);
     312        memcpy(pTemp,MdiInfo[WndNum]->pMdiTextEdit->buffer+start,length);
    313313        pTemp[length]=0;
    314314
     
    340340    extern METHODCHECKINFO MethodCheckInfo;
    341341    if(MethodCheckInfo.hWnd){
    342         if(MdiInfo[WndNum].DocType==WNDTYPE_BASIC)
     342        if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC)
    343343            ShowParameterHint(WndNum);
    344344    }
     
    354354        char *pTemp,temporary[VN_SIZE];
    355355
    356         i=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,
    357             MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
    358             MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     356        i=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,
     357            MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x,
     358            MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
    359359
    360360        if(i<ComplementWndInfo.iPos||ComplementWndInfo.iPos+ComplementWndInfo.iLength<i){
     
    379379            pTemp=(char *)HeapAlloc(hHeap,0,ComplementWndInfo.iLength+1);
    380380            memcpy(pTemp,
    381                 MdiInfo[WndNum].pMdiTextEdit->buffer+ComplementWndInfo.iPos,
     381                MdiInfo[WndNum]->pMdiTextEdit->buffer+ComplementWndInfo.iPos,
    382382                ComplementWndInfo.iLength);
    383383            pTemp[ComplementWndInfo.iLength]=0;
     
    432432            pTemp=(char *)HeapAlloc(hHeap,0,ComplementWndInfo.iLength+1);
    433433            memcpy(pTemp,
    434                 MdiInfo[WndNum].pMdiTextEdit->buffer+ComplementWndInfo.iPos,
     434                MdiInfo[WndNum]->pMdiTextEdit->buffer+ComplementWndInfo.iPos,
    435435                ComplementWndInfo.iLength);
    436436            pTemp[ComplementWndInfo.iLength]=0;
     
    462462
    463463    HWND hEdit;
    464     hEdit=MdiInfo[WndNum].pMdiTextEdit->hEdit;
    465 
    466     x=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
    467     y=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
     464    hEdit=MdiInfo[WndNum]->pMdiTextEdit->hEdit;
     465
     466    x=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x;
     467    y=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y;
    468468    GetScrollBaseCaretPos(WndNum,&x,&y);
    469469
     
    537537    if(loose_y<0) loose_y=0;
    538538
    539     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     539    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    540540
    541541    // 行の確認
     
    659659
    660660    POINT *pCaretPos;
    661     pCaretPos=&MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
     661    pCaretPos=&MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
    662662
    663663    if(pCaretPos->x==0&&pCaretPos->y==0){
     
    666666    }
    667667
    668     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     668    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    669669
    670670    i=GetBufferIndexFromCaretPos(pBuf,
     
    711711    char *pBuf;
    712712
    713     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     713    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    714714
    715715    i=GetBufferIndexFromCaretPos(pBuf,
     
    768768
    769769    //上下のキャレット移動時には、左右方向の位置を保持する
    770     if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
    771         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
     770    if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     771        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    772772
    773773    pCaretPos->y--;
    774774
    775775    CaretPos_LooseToNatural(WndNum,
    776         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
     776        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos,
    777777        pCaretPos->y,
    778778        pCaretPos);
     
    784784
    785785    //上下のキャレット移動時には、左右方向の位置を保持する
    786     if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
    787         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
     786    if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     787        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    788788
    789789    pCaretPos->y++;
    790790
    791791    CaretPos_LooseToNatural(WndNum,
    792         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
     792        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos,
    793793        pCaretPos->y,
    794794        pCaretPos);
     
    805805
    806806    //上下のキャレット移動時には、左右方向の位置を保持する
    807     if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
    808         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
     807    if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     808        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    809809
    810810    SCROLLINFO si;
    811811    si.cbSize=sizeof(SCROLLINFO);
    812812    si.fMask=SIF_PAGE;
    813     GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si);
     813    GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si);
    814814    pCaretPos->y-=si.nPage;
    815815    if(pCaretPos->y<0) pCaretPos->y=0;
    816816
    817817    CaretPos_LooseToNatural(WndNum,
    818         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
     818        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos,
    819819        pCaretPos->y,
    820820        pCaretPos);
     
    826826
    827827    //上下のキャレット移動時には、左右方向の位置を保持する
    828     if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
    829         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
     828    if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     829        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    830830
    831831    SCROLLINFO si;
    832832    si.cbSize=sizeof(SCROLLINFO);
    833833    si.fMask=SIF_PAGE;
    834     GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si);
     834    GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si);
    835835    pCaretPos->y+=si.nPage;
    836836
    837837    CaretPos_LooseToNatural(WndNum,
    838         MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
     838        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos,
    839839        pCaretPos->y,
    840840        pCaretPos);
  • trunk/ab5.0/abdev/abdev/ChildWndOnRebar.cpp

    r626 r629  
    4848                SendMessage(hwnd,CB_GETLBTEXT,SendMessage(hwnd,CB_GETCURSEL,0,0),(long)str);
    4949                for(i=0;i<MdiInfo.size();i++){
    50                     if(lstrcmpi(str,MdiInfo[i].title.c_str())==0) break;
     50                    if(lstrcmpi(str,MdiInfo[i]->title.c_str())==0) break;
    5151                }
    52                 BringWindowToTop(MdiInfo[i].hwnd);
     52                BringWindowToTop(MdiInfo[i]->hwnd);
    5353            }
    5454            break;
     
    199199    if(IsWindow(hTempWnd)){
    200200        for(i=0,i2=0;i<MdiInfo.size();i++){
    201             if(MdiInfo[i].hwnd){
    202                 GetWindowText(MdiInfo[i].hwnd,buffer,MAX_PATH);
    203                 if(MdiInfo[i].hwnd==hTempWnd) i2=SendMessage(hDocCombo,CB_ADDSTRING,0,(long)buffer);
     201            if(MdiInfo[i]->hwnd){
     202                GetWindowText(MdiInfo[i]->hwnd,buffer,MAX_PATH);
     203                if(MdiInfo[i]->hwnd==hTempWnd) i2=SendMessage(hDocCombo,CB_ADDSTRING,0,(long)buffer);
    204204                else SendMessage(hDocCombo,CB_ADDSTRING,0,(long)buffer);
    205205            }
  • trunk/ab5.0/abdev/abdev/ClassTree.cpp

    r625 r629  
    450450        if( WndNum != -1 )
    451451        {
    452             if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    453                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),lpszFilePath)==0) break;
     452            if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
     453                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),lpszFilePath)==0) break;
    454454            }
    455455            hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    460460    if(hChild){
    461461        //すでに指定されたファイルが開かれている場合
    462         pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     462        pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    463463    }
    464464    else{
     
    579579        HWND hChild=GetWindow(hClient,GW_CHILD);
    580580        int WndNum=GetWndNum(hChild);
    581         char *pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     581        char *pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    582582        SetClassTreeFromOneFile_Buf( pBuf, -1 );
    583583
  • trunk/ab5.0/abdev/abdev/CodeFormatter.cpp

    r475 r629  
    1212    WndNum=GetNowWndNum();
    1313
    14     if(MdiInfo[WndNum].DocType!=WNDTYPE_BASIC){
     14    if(MdiInfo[WndNum]->DocType!=WNDTYPE_BASIC){
    1515        goto NonFormater;
    1616    }
     
    3838
    3939    char *pBuf;
    40     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     40    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    4141
    4242    //カーソルバッファ位置を取得
    4343    int i,i2;
    4444    i=GetBufferIndexFromCaretPos(pBuf,
    45         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
    46         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    47     int StartX=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
     45        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x,
     46        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
     47    int StartX=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x;
    4848
    4949    //現在の行のインデントをコピー(iFirstIndent_Speciallyにタブ数を格納)
     
    8383    }
    8484
    85     if(MdiInfo[WndNum].DocType==WNDTYPE_BASIC){
     85    if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC){
    8686        //インデント追加のコマンドかどうかを判断
    8787        if(IsIndentAdditionCommand_FromBuffer(pBuf+i+iIndent)) iIndent++;
  • trunk/ab5.0/abdev/abdev/Common.h

    r626 r629  
    366366    char *IndentStr;
    367367};
    368 extern std::vector<MDIINFO> MdiInfo;
     368extern std::vector<MDIINFO *> MdiInfo;
    369369
    370370//RADツールのマウスドラッグ
     
    618618void CloseDocWindow(int WndNum);
    619619void ResizeTextEditWnd(HWND hwnd,int cx,int cy);
    620 void ResizeOwnerWnd(void);
    621620#define FLAG_DBLCLK     1
    622621#define FLAG_BEAMCURSOR 2
     
    730729BOOL SetupProjectEditor(void);
    731730void EndProjectEditor(void);
    732 void SetupWindow(HWND hwnd);
    733731BOOL SetRunning(HWND hChild);
    734732BOOL IsNeedCompile( const std::string &filepath, BOOL bDebug );
  • trunk/ab5.0/abdev/abdev/Complement.cpp

    r625 r629  
    386386    //エディタ画面左端のコントロールタブ
    387387    int iControlTabSpace;
    388     iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
     388    iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace;
    389389
    390390    extern int font_width,font_height;
    391391    POINT pos;
    392     pos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
     392    pos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
    393393    GetScrollBaseCaretPos(WndNum,(int *)&pos.x,(int *)&pos.y);
    394394
     
    396396    pos.y=(pos.y+1)*font_height;
    397397
    398     ClientToScreen(MdiInfo[WndNum].pMdiTextEdit->hEdit,&pos);
     398    ClientToScreen(MdiInfo[WndNum]->pMdiTextEdit->hEdit,&pos);
    399399
    400400    extern HINSTANCE hInst;
     
    621621            //フォーカスをエディタに戻す
    622622            WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    623             SetFocus(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     623            SetFocus(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
    624624            return 0;
    625625        case WM_KEYDOWN:
     
    633633            //フォーカスをエディタに戻す
    634634            WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    635             SetFocus(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     635            SetFocus(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
    636636
    637637            LVHITTESTINFO lvHitTest;
     
    659659
    660660                    for(i=ComplementWndInfo.iPos-1;;i--){
    661                         if(MdiInfo[WndNum].pMdiTextEdit->buffer[i]!='\t'){
     661                        if(MdiInfo[WndNum]->pMdiTextEdit->buffer[i]!='\t'){
    662662                            i++;
    663663                            break;
     
    665665                    }
    666666
    667                     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
     667                    GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,
    668668                        i,
    669                         &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     669                        &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos);
    670670
    671671                    //インデント
     
    684684                    //クラスメンバ補完
    685685
    686                     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
     686                    GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,
    687687                        ComplementWndInfo.iPos,
    688                         &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     688                        &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos);
    689689
    690690                    //リプレース前に補完機能を破棄する
  • trunk/ab5.0/abdev/abdev/Debugger.cpp

    r625 r629  
    4444        else{
    4545            if(IsWindow(hChild)){
    46                 if(MdiInfo[GetWndNum(hChild)].DocType==WNDTYPE_BASIC){
     46                if(MdiInfo[GetWndNum(hChild)]->DocType==WNDTYPE_BASIC){
    4747                    //有効(Basicプログラムファイルを開いているとき)
    4848                    bEnableDocument=1;
     
    5252
    5353        if(IsWindow(hChild)){
    54             if(MdiInfo[GetWndNum(hChild)].DocType==WNDTYPE_BASIC){
     54            if(MdiInfo[GetWndNum(hChild)]->DocType==WNDTYPE_BASIC){
    5555                //ブレークポイント有効(Basicプログラムファイルを開いているとき)
    5656                bBreakPoint=1;
     
    251251
    252252        char temporary[MAX_PATH];
    253         sprintf(temporary,"\"%s\",%d",MdiInfo[WndNum].path.c_str(),MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     253        sprintf(temporary,"\"%s\",%d",MdiInfo[WndNum]->path.c_str(),MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
    254254
    255255        char temp2[MAX_PATH];
     
    429429    if(WndNum==-1) return;
    430430
    431     if( !Jenga::Common::Path( MdiInfo[WndNum].path ).IsExistFile() )
     431    if( !Jenga::Common::Path( MdiInfo[WndNum]->path ).IsExistFile() )
    432432    {
    433433        return;
     
    436436    int i,i2,sw=0;
    437437    for(i=0;i<num;i++){
    438         if(lstrcmpi(MdiInfo[WndNum].path.c_str(),ppItem[i]->lpszFileName)==0){
     438        if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),ppItem[i]->lpszFileName)==0){
    439439            for(i2=0;i2<ppItem[i]->num;i2++){
    440                 if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==ppItem[i]->piLine[i2]){
     440                if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==ppItem[i]->piLine[i2]){
    441441                    sw=1;
    442442                    break;
     
    449449    if(sw==0){
    450450        //ブレークポイントを追加
    451         insert(MdiInfo[WndNum].path.c_str(),MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     451        insert(MdiInfo[WndNum]->path.c_str(),MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
    452452    }
    453453    else{
    454454        //ブレークポイントを削除
    455         remove(MdiInfo[WndNum].path.c_str(),MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     455        remove(MdiInfo[WndNum]->path.c_str(),MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
    456456    }
    457457
     
    464464
    465465    //エディタを再描画
    466     InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
     466    InvalidateRect(MdiInfo[WndNum]->pMdiTextEdit->hEdit,NULL,0);
    467467}
    468468void CDBBreakPoint::SaveToTempFile(void){
  • trunk/ab5.0/abdev/abdev/DialogBoxes.cpp

    r619 r629  
    11301130        //delete pobj_SideWeb;
    11311131        //pobj_SideWeb=new CSideWeb(hOwner);
    1132         //ResizeOwnerWnd();
     1132        //ActiveBasic::IDE::Program::mainFrame.Resized();
    11331133    }
    11341134    return;
  • trunk/ab5.0/abdev/abdev/DocumentAdvice.cpp

    r625 r629  
    180180#define MEM_SPACE 1024 //強制終了を防ぐためのゆとりスペース
    181181            for(i3=0;i3<MdiInfo.size();i3++){
    182                 if(MdiInfo[i3].hwnd){
    183                     if(lstrcmpi(temporary,MdiInfo[i3].path.c_str())==0) break;
     182                if(MdiInfo[i3]->hwnd){
     183                    if(lstrcmpi(temporary,MdiInfo[i3]->path.c_str())==0) break;
    184184                }
    185185            }
     
    202202            else{
    203203                //エディタから読み取る
    204                 FileSize=lstrlen(MdiInfo[i3].pMdiTextEdit->buffer);
     204                FileSize=lstrlen(MdiInfo[i3]->pMdiTextEdit->buffer);
    205205
    206206                temp3=(char *)HeapAlloc(hHeap,0,FileSize+MEM_SPACE);
    207                 memcpy(temp3,MdiInfo[i3].pMdiTextEdit->buffer,FileSize);
     207                memcpy(temp3,MdiInfo[i3]->pMdiTextEdit->buffer,FileSize);
    208208                temp3[FileSize]=0;
    209209            }
  • trunk/ab5.0/abdev/abdev/DrawBuffer.cpp

    r625 r629  
    193193            if( projectInfo.IsOpened() ){
    194194                pobj_FileBreakPoint=
    195                     projectInfo.pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum].path.c_str());
     195                    projectInfo.pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum]->path.c_str());
    196196            }
    197197            else{
    198198                extern CDBBreakPoint *pobj_DBBreakPoint;
    199                 pobj_FileBreakPoint=pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum].path.c_str());
     199                pobj_FileBreakPoint=pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum]->path.c_str());
    200200            }
    201201
     
    278278
    279279    RECT ClientRect;
    280     hEdit=GetWindow(MdiInfo[WndNum].hwnd,GW_CHILD);
     280    hEdit=GetWindow(MdiInfo[WndNum]->hwnd,GW_CHILD);
    281281    GetClientRect(hEdit,&ClientRect);
    282282
     
    284284    int iControlTabSpace;
    285285    int iLineNumberTextCount;
    286     iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    287     iLineNumberTextCount=MdiInfo[WndNum].pMdiTextEdit->iLineNumberTextCount;
     286    iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace;
     287    iLineNumberTextCount=MdiInfo[WndNum]->pMdiTextEdit->iLineNumberTextCount;
    288288
    289289    //一ページ中に表示できる行数を取得
     
    302302
    303303    //テキストバッファをコード内で参照しやすいようにポインタ変数を利用する
    304     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     304    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    305305
    306306    //選択範囲を取得
     
    336336        if(pBuf[i]=='\0'){
    337337            if(0<=y&&y<=OnePage_CharHeight){
    338                 if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
     338                if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==y-BaseY){
    339339                    ////////////////////////////////////
    340340                    // カーソル行では余白を塗りつぶす
     
    376376            /////////////////
    377377
    378             if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
     378            if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==y-BaseY){
    379379                ///////////////////////////////////////////////////////////
    380380                //改行コードよりも右側は白いブラシで塗りつぶす(カーソル行用)
     
    405405        }
    406406
    407         if(MdiInfo[WndNum].DocType==WNDTYPE_BASIC){
     407        if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC){
    408408
    409409            if(pBuf[i]=='\"'&&dwComment==0) IsStr^=1;
     
    434434            if(dwComment!=0&&dwComment!=10) dwComment--;
    435435        }
    436         if(MdiInfo[WndNum].DocType==WNDTYPE_HTML){
     436        if(MdiInfo[WndNum]->DocType==WNDTYPE_HTML){
    437437            //複数行に渡るコメントを考慮
    438438            if(pBuf[i]=='<'&&pBuf[i+1]=='!'&&pBuf[i+2]=='-'&&pBuf[i+3]=='-'&&IsStr==0&&dwComment==0){
     
    447447
    448448        //ハイパーリンク用下線
    449         if(MdiInfo[WndNum].pMdiTextEdit->iUnderStart<=i&&i<MdiInfo[WndNum].pMdiTextEdit->iUnderEnd)
     449        if(MdiInfo[WndNum]->pMdiTextEdit->iUnderStart<=i&&i<MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd)
    450450            bHyperLinkUnderBar=1;
    451451        else bHyperLinkUnderBar=0;
     
    464464            else{
    465465                //通常カラー
    466                 NextColor=MdiInfo[WndNum].pMdiTextEdit->pColorRef[i];
     466                NextColor=MdiInfo[WndNum]->pMdiTextEdit->pColorRef[i];
    467467            }
    468468
     
    473473            }
    474474            else{
    475                 if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
     475                if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==y-BaseY){
    476476                    //カーソル行
    477477                    NextBackColor=CaretBackColor;
     
    524524
    525525
    526                 if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
     526                if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==y-BaseY){
    527527                    ///////////////////////////////////////////////////////////
    528528                    //改行コードよりも右側は白いブラシで塗りつぶす(カーソル行用)
  • trunk/ab5.0/abdev/abdev/DrawWindow.cpp

    r625 r629  
    44
    55void DrawLineInClient(int WndNum,long StartX,long StartY,long EndX,long EndY){
    6     MoveToEx(MdiInfo[WndNum].MdiRadInfo->hMemDC,
    7         StartX+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    8         StartY+MdiInfo[WndNum].MdiRadInfo->ClientPos.y,
     6    MoveToEx(MdiInfo[WndNum]->MdiRadInfo->hMemDC,
     7        StartX+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     8        StartY+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y,
    99        NULL);
    10     LineTo(MdiInfo[WndNum].MdiRadInfo->hMemDC,
    11         EndX+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    12         EndY+MdiInfo[WndNum].MdiRadInfo->ClientPos.y);
     10    LineTo(MdiInfo[WndNum]->MdiRadInfo->hMemDC,
     11        EndX+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     12        EndY+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y);
    1313}
    1414void DrawRectangleInClient(int WndNum,long left,long top,long right,long bottom,COLORREF RGB_Pen,COLORREF RGB_Brush,BOOL bBrushing){
     
    1919    if(bBrushing) hBrush=CreateSolidBrush(RGB_Brush);
    2020    else hBrush=(HBRUSH)GetStockObject(NULL_BRUSH);
    21     hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
    22     hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hBrush);
    23 
    24     Rectangle(MdiInfo[WndNum].MdiRadInfo->hMemDC,
    25         left+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    26         top+MdiInfo[WndNum].MdiRadInfo->ClientPos.y,
    27         right+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    28         bottom+MdiInfo[WndNum].MdiRadInfo->ClientPos.y);
    29 
    30     SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
    31     SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldBrush);
     21    hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
     22    hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hBrush);
     23
     24    Rectangle(MdiInfo[WndNum]->MdiRadInfo->hMemDC,
     25        left+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     26        top+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y,
     27        right+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     28        bottom+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y);
     29
     30    SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
     31    SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldBrush);
    3232    DeleteObject(hPen);
    3333    if(bBrushing) DeleteObject(hBrush);
     
    3838    //光源方向の縁
    3939    hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    40     hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     40    hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    4141    DrawLineInClient(WndNum,
    4242        pPos->x, pPos->y,
     
    4545        pPos->x, pPos->y,
    4646        pPos->x, pPos->y+pSize->cy-1);
    47     SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     47    SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    4848    DeleteObject(hPen);
    4949
    5050    //影側の縁
    5151    hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DDKSHADOW));
    52     hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     52    hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    5353    DrawLineInClient(WndNum,
    5454        pPos->x, pPos->y+pSize->cy-1,
     
    5757        pPos->x+pSize->cx-1, pPos->y,
    5858        pPos->x+pSize->cx-1, pPos->y+pSize->cy-1);
    59     SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     59    SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    6060    DeleteObject(hPen);
    6161
    6262    hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DSHADOW));
    63     hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     63    hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    6464    DrawLineInClient(WndNum,
    6565        pPos->x+1, pPos->y+pSize->cy-2,
     
    6868        pPos->x+pSize->cx-2, pPos->y+1,
    6969        pPos->x+pSize->cx-2, pPos->y+pSize->cy-2);
    70     SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     70    SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    7171    DeleteObject(hPen);
    7272
     
    9090        //モーダル フレーム境界線
    9191
    92         rect.left=pPos->x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    93         rect.top=pPos->y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    94         rect.right=pPos->x+pSize->cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    95         rect.bottom=pPos->y+pSize->cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    96         DrawEdge(MdiInfo[WndNum].MdiRadInfo->hMemDC,&rect,EDGE_RAISED,BF_RECT);
     92        rect.left=pPos->x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     93        rect.top=pPos->y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     94        rect.right=pPos->x+pSize->cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     95        rect.bottom=pPos->y+pSize->cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     96        DrawEdge(MdiInfo[WndNum]->MdiRadInfo->hMemDC,&rect,EDGE_RAISED,BF_RECT);
    9797        pPos->x+=2;
    9898        pPos->y+=2;
     
    117117        //影側の色
    118118        hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DSHADOW));
    119         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     119        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    120120        DrawLineInClient(WndNum,
    121121            pPos->x,
     
    128128            pPos->x+pSize->cx-1,
    129129            pPos->y);
    130         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     130        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    131131        DeleteObject(hPen);
    132132
    133133        //光源方向の縁
    134134        hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    135         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     135        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    136136        DrawLineInClient(WndNum,
    137137            pPos->x,
     
    144144            pPos->x+pSize->cx-1,
    145145            pPos->y+pSize->cy);
    146         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     146        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    147147        DeleteObject(hPen);
    148148
     
    156156        //クライアント境界線
    157157
    158         rect.left=pPos->x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    159         rect.top=pPos->y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    160         rect.right=pPos->x+pSize->cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    161         rect.bottom=pPos->y+pSize->cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    162         DrawEdge(MdiInfo[WndNum].MdiRadInfo->hMemDC,&rect,EDGE_SUNKEN,BF_RECT);
     158        rect.left=pPos->x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     159        rect.top=pPos->y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     160        rect.right=pPos->x+pSize->cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     161        rect.bottom=pPos->y+pSize->cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     162        DrawEdge(MdiInfo[WndNum]->MdiRadInfo->hMemDC,&rect,EDGE_SUNKEN,BF_RECT);
    163163        pPos->x+=2;
    164164        pPos->y+=2;
     
    198198        if(style&WS_DISABLED){
    199199            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    200             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     200            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    201201            pos.x++;
    202202            pos.y++;
     
    205205                DrawLineInClient(WndNum,i+pos.x+2,i2,i+pos.x+2,i2+(i*2)+1);
    206206            }
    207             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     207            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    208208            DeleteObject(hPen);
    209209            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    213213        else rgb=GetSysColor(COLOR_BTNTEXT);
    214214        hPen=CreatePen(PS_SOLID,0,rgb);
    215         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     215        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    216216        i2=pos.y+(size.cy/2);
    217217        for(i=0;i<4;i++,i2--){
    218218            DrawLineInClient(WndNum,i+pos.x+2,i2,i+pos.x+2,i2+(i*2)+1);
    219219        }
    220         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     220        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    221221        DeleteObject(hPen);
    222222
     
    244244        if(style&WS_DISABLED){
    245245            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    246             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     246            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    247247            pos.x++;
    248248            pos.y++;
     
    251251                DrawLineInClient(WndNum,i+pos.x+3,i2,i+pos.x+3,i2+((3-i)*2)+1);
    252252            }
    253             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     253            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    254254            DeleteObject(hPen);
    255255            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    259259        else rgb=GetSysColor(COLOR_BTNTEXT);
    260260        hPen=CreatePen(PS_SOLID,0,rgb);
    261         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     261        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    262262        i2=pos.y+(size.cy/2);
    263263        for(i=3;i>=0;i--,i2--){
    264264            DrawLineInClient(WndNum,i+pos.x+3,i2,i+pos.x+3,i2+((3-i)*2)+1);
    265265        }
    266         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     266        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    267267        DeleteObject(hPen);
    268268
     
    331331        if(style&WS_DISABLED){
    332332            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    333             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     333            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    334334            pos.x++;
    335335            pos.y++;
     
    338338                DrawLineInClient(WndNum,i2,i+pos.y+2,i2+(i*2)+1,i+pos.y+2);
    339339            }
    340             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     340            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    341341            DeleteObject(hPen);
    342342            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    346346        else rgb=GetSysColor(COLOR_BTNTEXT);
    347347        hPen=CreatePen(PS_SOLID,0,rgb);
    348         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     348        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    349349        i2=pos.x+(size.cx/2)-1;
    350350        for(i=0;i<4;i++,i2--){
    351351            DrawLineInClient(WndNum,i2,i+pos.y+2,i2+(i*2)+1,i+pos.y+2);
    352352        }
    353         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     353        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    354354        DeleteObject(hPen);
    355355
     
    378378        if(style&WS_DISABLED){
    379379            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    380             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     380            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    381381            pos.x++;
    382382            pos.y++;
     
    385385                DrawLineInClient(WndNum,i2,i+pos.y+3,i2+((3-i)*2)+1,i+pos.y+3);
    386386            }
    387             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     387            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    388388            DeleteObject(hPen);
    389389            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    393393        else rgb=GetSysColor(COLOR_BTNTEXT);
    394394        hPen=CreatePen(PS_SOLID,0,rgb);
    395         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     395        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    396396        i2=pos.x+(size.cx/2);
    397397        for(i=3;i>=0;i--,i2--){
    398398            DrawLineInClient(WndNum,i2,i+pos.y+3,i2+((3-i)*2)+1,i+pos.y+3);
    399399        }
    400         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     400        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    401401        DeleteObject(hPen);
    402402
     
    454454        BitmapInfo.bmiHeader.biBitCount=24;
    455455
    456         hBitmap=CreateDIBSection(MdiInfo[WndNum].MdiRadInfo->hMemDC,&BitmapInfo,DIB_RGB_COLORS,(void **)&pByte,0,0);
     456        hBitmap=CreateDIBSection(MdiInfo[WndNum]->MdiRadInfo->hMemDC,&BitmapInfo,DIB_RGB_COLORS,(void **)&pByte,0,0);
    457457        i=BitmapInfo.bmiHeader.biWidth*3;
    458458        if(i%sizeof(LONG)!=0) i+=sizeof(LONG)-(i%sizeof(LONG));
     
    469469            }
    470470        }
    471         SetDIBitsToDevice(MdiInfo[WndNum].MdiRadInfo->hMemDC,
    472             pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    473             pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y,
     471        SetDIBitsToDevice(MdiInfo[WndNum]->MdiRadInfo->hMemDC,
     472            pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     473            pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y,
    474474            BitmapInfo.bmiHeader.biWidth, BitmapInfo.bmiHeader.biHeight,
    475475            0,0,
     
    505505        if(style&WS_DISABLED){
    506506            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    507             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     507            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    508508            pos.x++;
    509509            pos.y++;
     
    512512                DrawLineInClient(WndNum,i+pos.x+2,i2,i+pos.x+2,i2+(i*2)+1);
    513513            }
    514             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     514            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    515515            DeleteObject(hPen);
    516516            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    520520        else rgb=GetSysColor(COLOR_BTNTEXT);
    521521        hPen=CreatePen(PS_SOLID,0,rgb);
    522         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     522        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    523523        i2=pos.y+(size.cy/2);
    524524        for(i=0;i<4;i++,i2--){
    525525            DrawLineInClient(WndNum,i+pos.x+2,i2,i+pos.x+2,i2+(i*2)+1);
    526526        }
    527         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     527        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    528528        DeleteObject(hPen);
    529529
     
    543543        if(style&WS_DISABLED){
    544544            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    545             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     545            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    546546            pos.x++;
    547547            pos.y++;
     
    550550                DrawLineInClient(WndNum,i+pos.x+3,i2,i+pos.x+3,i2+((3-i)*2)+1);
    551551            }
    552             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     552            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    553553            DeleteObject(hPen);
    554554            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    558558        else rgb=GetSysColor(COLOR_BTNTEXT);
    559559        hPen=CreatePen(PS_SOLID,0,rgb);
    560         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     560        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    561561        i2=pos.y+(size.cy/2);
    562562        for(i=3;i>=0;i--,i2--){
    563563            DrawLineInClient(WndNum,i+pos.x+3,i2,i+pos.x+3,i2+((3-i)*2)+1);
    564564        }
    565         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     565        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    566566        DeleteObject(hPen);
    567567    }
     
    584584        if(style&WS_DISABLED){
    585585            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    586             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     586            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    587587            pos.x++;
    588588            pos.y++;
     
    591591                DrawLineInClient(WndNum,i2,i+pos.y+2,i2+(i*2)+1,i+pos.y+2);
    592592            }
    593             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     593            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    594594            DeleteObject(hPen);
    595595            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    599599        else rgb=GetSysColor(COLOR_BTNTEXT);
    600600        hPen=CreatePen(PS_SOLID,0,rgb);
    601         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     601        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    602602        i2=pos.x+(size.cx/2)-1;
    603603        for(i=0;i<4;i++,i2--){
    604604            DrawLineInClient(WndNum,i2,i+pos.y+2,i2+(i*2)+1,i+pos.y+2);
    605605        }
    606         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     606        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    607607        DeleteObject(hPen);
    608608
     
    623623        if(style&WS_DISABLED){
    624624            hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    625             hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     625            hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    626626            pos.x++;
    627627            pos.y++;
     
    630630                DrawLineInClient(WndNum,i2,i+pos.y+3,i2+((3-i)*2)+1,i+pos.y+3);
    631631            }
    632             SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     632            SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    633633            DeleteObject(hPen);
    634634            rgb=GetSysColor(COLOR_GRAYTEXT);
     
    638638        else rgb=GetSysColor(COLOR_BTNTEXT);
    639639        hPen=CreatePen(PS_SOLID,0,rgb);
    640         hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hPen);
     640        hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hPen);
    641641        i2=pos.x+(size.cx/2);
    642642        for(i=3;i>=0;i--,i2--){
    643643            DrawLineInClient(WndNum,i2,i+pos.y+3,i2+((3-i)*2)+1,i+pos.y+3);
    644644        }
    645         SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldPen);
     645        SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldPen);
    646646        DeleteObject(hPen);
    647647    }
     
    748748
    749749    //Draw...InClient関数のため
    750     MdiInfo[WndNum].MdiRadInfo->ClientPos.x=0;
    751     MdiInfo[WndNum].MdiRadInfo->ClientPos.y=0;
     750    MdiInfo[WndNum]->MdiRadInfo->ClientPos.x=0;
     751    MdiInfo[WndNum]->MdiRadInfo->ClientPos.y=0;
    752752
    753753    if(pWindowInfo->GetStyle()&(WS_CAPTION&(~WS_BORDER))){
     
    940940
    941941    //クライアント左上ポジションを設定
    942     MdiInfo[WndNum].MdiRadInfo->ClientPos.x=InsideRect.left;
    943     MdiInfo[WndNum].MdiRadInfo->ClientPos.y=InsideRect.top;
     942    MdiInfo[WndNum]->MdiRadInfo->ClientPos.x=InsideRect.left;
     943    MdiInfo[WndNum]->MdiRadInfo->ClientPos.y=InsideRect.top;
    944944
    945945    //ExStyleによる縁を描画
     
    954954
    955955    //クライアント領域のサイズを設定
    956     MdiInfo[WndNum].MdiRadInfo->ClientSize=size;
     956    MdiInfo[WndNum]->MdiRadInfo->ClientSize=size;
    957957
    958958
     
    10431043                //キャプション テキスト
    10441044
    1045                 rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1046                 rect.top=pos.y+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1047                 rect.right=pos.x+size.cx-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1048                 rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1045                rect.left=pos.x+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1046                rect.top=pos.y+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1047                rect.right=pos.x+size.cx-2+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1048                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    10491049
    10501050                if(pChildInfo->GetStyle()&BS_MULTILINE) i4=0;
     
    11161116            if(!(pChildInfo->GetStyle()&(BS_ICON|BS_BITMAP))){
    11171117                //キャプション テキスト
    1118                 rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1119                 rect.top=pos.y+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1120                 rect.right=pos.x+size.cx-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1121                 rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1118                rect.left=pos.x+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1119                rect.top=pos.y+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1120                rect.right=pos.x+size.cx-2+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1121                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    11221122
    11231123                if(pChildInfo->GetStyle()&BS_MULTILINE) i4=0;
     
    12361236
    12371237            //キャプション テキスト
    1238             rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1239             rect.top=pos.y+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1240             rect.right=pos.x+size.cx-1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1241             rect.bottom=pos.y+size.cy-1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1238            rect.left=pos.x+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1239            rect.top=pos.y+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1240            rect.right=pos.x+size.cx-1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1241            rect.bottom=pos.y+size.cy-1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    12421242
    12431243            if(pChildInfo->GetStyle()&ES_MULTILINE) i4=0;
     
    12681268
    12691269            //枠を描画
    1270             rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1271             rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y+(size2.cy/2);
    1272             rect.right=pos.x+size.cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1273             rect.bottom=pos.y+size.cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1270            rect.left=pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1271            rect.top=pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+(size2.cy/2);
     1272            rect.right=pos.x+size.cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1273            rect.bottom=pos.y+size.cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    12741274            DrawEdge(hdc,&rect,EDGE_ETCHED,BF_RECT);
    12751275
     
    12951295
    12961296            if(!((pChildInfo->GetStyle()&BS_ICON)||(pChildInfo->GetStyle()&BS_BITMAP))){
    1297                 rect.left+=MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1298                 rect.top+=MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1299                 rect.right+=MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1300                 rect.bottom+=MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1297                rect.left+=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1298                rect.top+=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1299                rect.right+=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1300                rect.bottom+=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    13011301                rect.left+=2;
    13021302                rect.right-=2;
     
    13381338                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(255,255,255),0,0);
    13391339            else if((pChildInfo->GetStyle()&0x0000001F)==SS_ETCHEDFRAME){
    1340                 rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1341                 rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1342                 rect.right=pos.x+size.cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1343                 rect.bottom=pos.y+size.cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1340                rect.left=pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1341                rect.top=pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1342                rect.right=pos.x+size.cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1343                rect.bottom=pos.y+size.cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    13441344                DrawEdge(hdc,&rect,EDGE_ETCHED,BF_RECT);
    13451345            }
     
    13851385
    13861386                    DrawIcon(hdc,
    1387                         pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    1388                         pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y,
     1387                        pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     1388                        pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y,
    13891389                        (HICON)hImage);
    13901390                    DestroyIcon((HICON)hImage);
     
    13941394                    DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(0,0,0),0,0);
    13951395                    hOldFont=(HFONT)SelectObject(hdc,hFont);
    1396                     rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1397                     rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1398                     rect.right=pos.x+size.cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1399                     rect.bottom=pos.y+size.cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1396                    rect.left=pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1397                    rect.top=pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1398                    rect.right=pos.x+size.cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1399                    rect.bottom=pos.y+size.cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    14001400                    SetTextColor(hdc,GetSysColor(COLOR_WINDOWTEXT));
    14011401                    DrawText(hdc,"icon...",-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
     
    14421442                    SelectObject(memdc,hImage);
    14431443                    BitBlt(hdc,
    1444                         pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    1445                         pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y,
     1444                        pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     1445                        pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y,
    14461446                        size.cx, size.cy,
    14471447                        memdc, 0,0,
     
    14541454                    DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(0,0,0),0,0);
    14551455                    hOldFont=(HFONT)SelectObject(hdc,hFont);
    1456                     rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1457                     rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1458                     rect.right=pos.x+size.cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1459                     rect.bottom=pos.y+size.cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1456                    rect.left=pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1457                    rect.top=pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1458                    rect.right=pos.x+size.cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1459                    rect.bottom=pos.y+size.cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    14601460                    SetTextColor(hdc,GetSysColor(COLOR_WINDOWTEXT));
    14611461                    DrawText(hdc,"bmp...",-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
     
    16061606                }
    16071607                SetDIBitsToDevice(hdc,
    1608                     pos2.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
    1609                     pos2.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y,
     1608                    pos2.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x,
     1609                    pos2.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y,
    16101610                    pBitmapInfo->bmiHeader.biWidth, pBitmapInfo->bmiHeader.biHeight,
    16111611                    0,0,
     
    16231623            if(!(pChildInfo->GetStyle()&(BS_ICON|BS_BITMAP))){
    16241624                //キャプション テキスト
    1625                 rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1626                 rect.top=pos.y+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1627                 rect.right=pos.x+size.cx-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1628                 rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1625                rect.left=pos.x+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1626                rect.top=pos.y+1+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1627                rect.right=pos.x+size.cx-2+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1628                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    16291629
    16301630                if(pChildInfo->GetStyle()&BS_MULTILINE) i4=0;
     
    16651665
    16661666            //キャプション テキスト
    1667             rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1668             rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    1669             rect.right=pos.x+size.cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    1670             rect.bottom=pos.y+size.cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     1667            rect.left=pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1668            rect.top=pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
     1669            rect.right=pos.x+size.cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
     1670            rect.bottom=pos.y+size.cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    16711671
    16721672            //ビットを考慮してSS_LEFTを最後に検討する
     
    17081708                size.cy-=16;
    17091709
    1710                 rect.left=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pos.x+(size.cx/2)-2;
    1711                 rect.right=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pos.x+(size.cx/2)+2;
    1712                 rect.top=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pos.y;
    1713                 rect.bottom=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pos.y+size.cy;
     1710                rect.left=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pos.x+(size.cx/2)-2;
     1711                rect.right=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pos.x+(size.cx/2)+2;
     1712                rect.top=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pos.y;
     1713                rect.bottom=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pos.y+size.cy;
    17141714                DrawEdge(hdc,&rect,EDGE_SUNKEN,BF_RECT);
    17151715
     
    17241724                if(size.cy>21) size.cy=21;
    17251725
    1726                 rect.left=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pos.x;
    1727                 rect.right=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pos.x+size.cx;
    1728                 rect.top=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pos.y+(size.cy/2)-2;
    1729                 rect.bottom=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pos.y+(size.cy/2)+2;
     1726                rect.left=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pos.x;
     1727                rect.right=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pos.x+size.cx;
     1728                rect.top=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pos.y+(size.cy/2)-2;
     1729                rect.bottom=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pos.y+(size.cy/2)+2;
    17301730                DrawEdge(hdc,&rect,EDGE_SUNKEN,BF_RECT);
    17311731
     
    17691769    POINT pos;
    17701770
    1771     SetBkMode(MdiInfo[WndNum].MdiRadInfo->hMemDC,TRANSPARENT);
    1772 
    1773     hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,GetStockObject(WHITE_BRUSH));
    1774     PatBlt(MdiInfo[WndNum].MdiRadInfo->hMemDC,0,0,ScreenX*2,ScreenY*2,PATCOPY);
    1775     SelectObject(MdiInfo[WndNum].MdiRadInfo->hMemDC,hOldBrush);
     1771    SetBkMode(MdiInfo[WndNum]->MdiRadInfo->hMemDC,TRANSPARENT);
     1772
     1773    hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,GetStockObject(WHITE_BRUSH));
     1774    PatBlt(MdiInfo[WndNum]->MdiRadInfo->hMemDC,0,0,ScreenX*2,ScreenY*2,PATCOPY);
     1775    SelectObject(MdiInfo[WndNum]->MdiRadInfo->hMemDC,hOldBrush);
    17761776
    17771777    pos.x=LEVER_THICK;
    17781778    pos.y=LEVER_THICK;
    1779     DesigningWindow(WndNum,MdiInfo[WndNum].MdiRadInfo->hMemDC,&pos,pWindowInfo);
    1780 
    1781     InvalidateRect(MdiInfo[WndNum].MdiRadInfo->hRad,NULL,0);
     1779    DesigningWindow(WndNum,MdiInfo[WndNum]->MdiRadInfo->hMemDC,&pos,pWindowInfo);
     1780
     1781    InvalidateRect(MdiInfo[WndNum]->MdiRadInfo->hRad,NULL,0);
    17821782}
  • trunk/ab5.0/abdev/abdev/FileOperation.cpp

    r626 r629  
    344344
    345345    char szOldTitle[MAX_PATH];
    346     lstrcpy(szOldTitle,MdiInfo[WndNum].title.c_str());
    347 
    348     if(MdiInfo[WndNum].DocType==WNDTYPE_RAD||MdiInfo[WndNum].DocType==WNDTYPE_MENU){
     346    lstrcpy(szOldTitle,MdiInfo[WndNum]->title.c_str());
     347
     348    if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD||MdiInfo[WndNum]->DocType==WNDTYPE_MENU){
    349349        ////////////////////////////////////
    350350        // RADツール及びメニューエディタ
     
    359359        }
    360360    }
    361     else if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     361    else if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    362362        //////////////////////////
    363363        // テキストドキュメント
     
    376376
    377377            //ドキュメント セレクト コンボボックスから消去
    378             i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title.c_str());
     378            i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum]->title.c_str());
    379379            SendMessage(hDocCombo,CB_DELETESTRING,i2,0);
    380380
    381381            //新しいパスをセット
    382             MdiInfo[WndNum].path = temporary;
     382            MdiInfo[WndNum]->path = temporary;
    383383
    384384            //ドキュメント セレクト コンボボックスに挿入
    385385            _splitpath(temporary,NULL,NULL,str,str2);
    386386            lstrcat(str,str2);
    387             MdiInfo[WndNum].title = str;
    388             SendMessage(hDocCombo,CB_ADDSTRING,0,(long)MdiInfo[WndNum].title.c_str());
    389             i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title.c_str());
     387            MdiInfo[WndNum]->title = str;
     388            SendMessage(hDocCombo,CB_ADDSTRING,0,(long)MdiInfo[WndNum]->title.c_str());
     389            i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum]->title.c_str());
    390390            SendMessage(hDocCombo,CB_SETCURSEL,i2,0);
    391391
    392392            //MDIウィンドウのタイトルを再設定
    393             SetWindowText(hChild,MdiInfo[WndNum].title.c_str());
     393            SetWindowText(hChild,MdiInfo[WndNum]->title.c_str());
    394394        }
    395395        else{
    396             if(MdiInfo[WndNum].path.empty()){
     396            if(MdiInfo[WndNum]->path.empty()){
    397397                //"保存先のファイルを指定してください"
    398398get_file_path:
     
    403403                extern LPSTR HtmlFileFilter;
    404404                extern LPSTR TextFileFilter;
    405                 if(MdiInfo[WndNum].DocType==WNDTYPE_BASIC)
     405                if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC)
    406406                    ff=DefFileFilter;
    407                 else if(MdiInfo[WndNum].DocType==WNDTYPE_HTML)
     407                else if(MdiInfo[WndNum]->DocType==WNDTYPE_HTML)
    408408                    ff=HtmlFileFilter;
    409                 else if(MdiInfo[WndNum].DocType==WNDTYPE_TEXT)
     409                else if(MdiInfo[WndNum]->DocType==WNDTYPE_TEXT)
    410410                    ff=TextFileFilter;
    411411
     
    414414                return 1;
    415415            }
    416             lstrcpy(temporary,MdiInfo[WndNum].path.c_str());
     416            lstrcpy(temporary,MdiInfo[WndNum]->path.c_str());
    417417        }
    418418
     
    430430        //文字コードを復元
    431431        char *pBuf;
    432         pBuf=nkf.RestoreBuffer(MdiInfo[WndNum].pMdiTextEdit->buffer,MdiInfo[WndNum].pMdiTextEdit->iCharCode);
     432        pBuf=nkf.RestoreBuffer(MdiInfo[WndNum]->pMdiTextEdit->buffer,MdiInfo[WndNum]->pMdiTextEdit->iCharCode);
    433433
    434434        //改行コードを復元
    435         if(MdiInfo[WndNum].pMdiTextEdit->iLfCode==LFCODE_LF) nkf.ToLF(pBuf);
    436         else if(MdiInfo[WndNum].pMdiTextEdit->iLfCode==LFCODE_CR) nkf.ToCR(pBuf);
     435        if(MdiInfo[WndNum]->pMdiTextEdit->iLfCode==LFCODE_LF) nkf.ToLF(pBuf);
     436        else if(MdiInfo[WndNum]->pMdiTextEdit->iLfCode==LFCODE_CR) nkf.ToCR(pBuf);
    437437
    438438
     
    454454
    455455        //変更フラグをオフにする
    456         MdiInfo[WndNum].pMdiTextEdit->UnModify();
    457     }
    458     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     456        MdiInfo[WndNum]->pMdiTextEdit->UnModify();
     457    }
     458    else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
    459459        ///////////////////
    460460        // ICON
     
    471471            }
    472472            CloseHandle(fh);
    473             MdiInfo[WndNum].path = temporary;
    474             i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title.c_str());
     473            MdiInfo[WndNum]->path = temporary;
     474            i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum]->title.c_str());
    475475            SendMessage(hDocCombo,CB_DELETESTRING,i2,0);
    476476            _splitpath(temporary,NULL,NULL,str,str2);
    477477            lstrcat(str,str2);
    478             MdiInfo[WndNum].title = str;
    479             SendMessage(hDocCombo,CB_ADDSTRING,0,(long)MdiInfo[WndNum].title.c_str());
    480             i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title.c_str());
     478            MdiInfo[WndNum]->title = str;
     479            SendMessage(hDocCombo,CB_ADDSTRING,0,(long)MdiInfo[WndNum]->title.c_str());
     480            i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum]->title.c_str());
    481481            SendMessage(hDocCombo,CB_SETCURSEL,i2,0);
    482             SetWindowText(hChild,MdiInfo[WndNum].title.c_str());
     482            SetWindowText(hChild,MdiInfo[WndNum]->title.c_str());
    483483        }
    484484        else{
    485             if(MdiInfo[WndNum].path.empty()){
     485            if(MdiInfo[WndNum]->path.empty()){
    486486                //"保存先のファイルを指定してください"
    487487                if(!GetFilePathDialog(hOwner,temporary,IconFileFilter,STRING_FILESAVETITLE_DEFAULT,FALSE)) return 0;
     
    489489                return 1;
    490490            }
    491             lstrcpy(temporary,MdiInfo[WndNum].path.c_str());
     491            lstrcpy(temporary,MdiInfo[WndNum]->path.c_str());
    492492        }
    493493        SaveIconFile(temporary,hChild);
    494494
    495         MdiInfo[WndNum].MdiIconEditInfo->bModify=0;
     495        MdiInfo[WndNum]->MdiIconEditInfo->bModify=0;
    496496    }
    497497
     
    502502        color=pobj_MainTab->GetItemColor(szOldTitle);
    503503        pobj_MainTab->DeleteItem( szOldTitle, false );
    504         pobj_MainTab->InsertItem( MdiInfo[WndNum].title.c_str(), false, color );
     504        pobj_MainTab->InsertItem( MdiInfo[WndNum]->title.c_str(), false, color );
    505505    }
    506506    else{
    507         pobj_MainTab->RenameItem( szOldTitle, MdiInfo[WndNum].title.c_str() );
     507        pobj_MainTab->RenameItem( szOldTitle, MdiInfo[WndNum]->title.c_str() );
    508508    }
    509509
    510510    //「最近使ったファイル」を更新
    511     pobj_nv->pobj_History->insert(MdiInfo[WndNum].path.c_str());
     511    pobj_nv->pobj_History->insert(MdiInfo[WndNum]->path.c_str());
    512512
    513513    return 1;
  • trunk/ab5.0/abdev/abdev/IconEditor.cpp

    r626 r629  
    3434    BITMAPINFOHEADER *pBmpInfoHdr;
    3535
    36     hCombo=GetDlgItem(MdiInfo[WndNum].MdiIconEditInfo->hToolDlg,IDC_ICONTYPECOMBO);
    37 
    38     for(i=0;i<MdiInfo[WndNum].MdiIconEditInfo->num;i++){
    39         pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[i];
     36    hCombo=GetDlgItem(MdiInfo[WndNum]->MdiIconEditInfo->hToolDlg,IDC_ICONTYPECOMBO);
     37
     38    for(i=0;i<MdiInfo[WndNum]->MdiIconEditInfo->num;i++){
     39        pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[i];
    4040
    4141        //例: "32*32 (xxxx色)"
     
    147147    }
    148148
    149     MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->num]=
     149    MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->num]=
    150150        CreateIconType(IconType,
    151         &MdiInfo[WndNum].MdiIconEditInfo->dwBytesInRes[MdiInfo[WndNum].MdiIconEditInfo->num]);
     151        &MdiInfo[WndNum]->MdiIconEditInfo->dwBytesInRes[MdiInfo[WndNum]->MdiIconEditInfo->num]);
    152152
    153153    //イメージ選択用のメモリを解放
    154     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2)
    155         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    156     MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     154    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2)
     155        DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     156    MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    157157
    158158    //アイコンタイプを追加
    159     MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum=MdiInfo[WndNum].MdiIconEditInfo->num;
    160     MdiInfo[WndNum].MdiIconEditInfo->num++;
     159    MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum=MdiInfo[WndNum]->MdiIconEditInfo->num;
     160    MdiInfo[WndNum]->MdiIconEditInfo->num++;
    161161
    162162    //変更情報を初期化
    163     i=MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum;
    164     MdiInfo[WndNum].MdiIconEditInfo->undo[i].NowPos=0;
    165     memset(MdiInfo[WndNum].MdiIconEditInfo->undo[i].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
     163    i=MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum;
     164    MdiInfo[WndNum]->MdiIconEditInfo->undo[i].NowPos=0;
     165    memset(MdiInfo[WndNum]->MdiIconEditInfo->undo[i].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
    166166
    167167    //アイコンタイプコンボボックスに追加
    168168    char temporary[32];
    169169    HWND hCombo;
    170     hCombo=GetDlgItem(MdiInfo[WndNum].MdiIconEditInfo->hToolDlg,IDC_ICONTYPECOMBO);
     170    hCombo=GetDlgItem(MdiInfo[WndNum]->MdiIconEditInfo->hToolDlg,IDC_ICONTYPECOMBO);
    171171
    172172    //例: "32*32 (xxxx色)"
     
    182182    //再描画
    183183    HBRUSH hOldBrush;
    184     hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
    185     PatBlt(MdiInfo[WndNum].MdiIconEditInfo->memdc,0,0,400,400,PATCOPY);
    186     SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hOldBrush);
     184    hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
     185    PatBlt(MdiInfo[WndNum]->MdiIconEditInfo->memdc,0,0,400,400,PATCOPY);
     186    SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hOldBrush);
    187187    DrawIconToMemBmp(WndNum,0);
    188     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,1);
    189     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hColorDlg,NULL,0);
     188    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,1);
     189    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hColorDlg,NULL,0);
    190190}
    191191void DeleteIconType(int WndNum){
     
    194194    //変更情報を解放
    195195    for(i=0;i<MAX_ICONEDIT_UNDONUM;i++){
    196         if(MdiInfo[WndNum].MdiIconEditInfo->undo[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum].lpData[i])
    197             HeapDefaultFree(MdiInfo[WndNum].MdiIconEditInfo->undo[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum].lpData[i]);
     196        if(MdiInfo[WndNum]->MdiIconEditInfo->undo[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum].lpData[i])
     197            HeapDefaultFree(MdiInfo[WndNum]->MdiIconEditInfo->undo[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum].lpData[i]);
    198198    }
    199199
    200200    //メモリを解放
    201     HeapDefaultFree(MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]);
     201    HeapDefaultFree(MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]);
    202202
    203203    //イメージ選択用のメモリを解放
    204     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2)
    205         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    206     MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     204    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2)
     205        DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     206    MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    207207
    208208    ////////////////////////
    209209    // アイコンタイプを削除
    210     for(i=MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum;i<MdiInfo[WndNum].MdiIconEditInfo->num-1;i++){
    211         MdiInfo[WndNum].MdiIconEditInfo->pIconImage[i]=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[i+1];
    212         MdiInfo[WndNum].MdiIconEditInfo->dwBytesInRes[i]=MdiInfo[WndNum].MdiIconEditInfo->dwBytesInRes[i+1];
    213         MdiInfo[WndNum].MdiIconEditInfo->undo[i]=MdiInfo[WndNum].MdiIconEditInfo->undo[i+1];
    214     }
    215     MdiInfo[WndNum].MdiIconEditInfo->num--;
    216     if(MdiInfo[WndNum].MdiIconEditInfo->num==MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum)
    217         MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum=MdiInfo[WndNum].MdiIconEditInfo->num-1;
     210    for(i=MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum;i<MdiInfo[WndNum]->MdiIconEditInfo->num-1;i++){
     211        MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[i]=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[i+1];
     212        MdiInfo[WndNum]->MdiIconEditInfo->dwBytesInRes[i]=MdiInfo[WndNum]->MdiIconEditInfo->dwBytesInRes[i+1];
     213        MdiInfo[WndNum]->MdiIconEditInfo->undo[i]=MdiInfo[WndNum]->MdiIconEditInfo->undo[i+1];
     214    }
     215    MdiInfo[WndNum]->MdiIconEditInfo->num--;
     216    if(MdiInfo[WndNum]->MdiIconEditInfo->num==MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum)
     217        MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum=MdiInfo[WndNum]->MdiIconEditInfo->num-1;
    218218
    219219    //コンボボックスからアイコンタイプを削除
    220220    HWND hCombo;
    221     hCombo=GetDlgItem(MdiInfo[WndNum].MdiIconEditInfo->hToolDlg,IDC_ICONTYPECOMBO);
     221    hCombo=GetDlgItem(MdiInfo[WndNum]->MdiIconEditInfo->hToolDlg,IDC_ICONTYPECOMBO);
    222222    i=SendMessage(hCombo,CB_DELETESTRING,
    223223        SendMessage(hCombo,CB_GETCURSEL,0,0),
    224224        0);
    225     SendMessage(hCombo,CB_SETCURSEL,MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum,0);
     225    SendMessage(hCombo,CB_SETCURSEL,MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum,0);
    226226
    227227    //再描画
    228228    HBRUSH hOldBrush;
    229     hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
    230     PatBlt(MdiInfo[WndNum].MdiIconEditInfo->memdc,0,0,400,400,PATCOPY);
    231     SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hOldBrush);
     229    hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
     230    PatBlt(MdiInfo[WndNum]->MdiIconEditInfo->memdc,0,0,400,400,PATCOPY);
     231    SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hOldBrush);
    232232    DrawIconToMemBmp(WndNum,0);
    233     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,1);
    234     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hColorDlg,NULL,0);
     233    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,1);
     234    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hColorDlg,NULL,0);
    235235}
    236236void NewIconEditWindow(const char *filepath){
     
    252252        while(hChild){
    253253            i=GetWndNum(hChild);
    254             if(MdiInfo[i].DocType==WNDTYPE_ICONEDIT){
    255                 if(lstrcmpi(MdiInfo[i].path.c_str(),filepath)==0) break;
     254            if(MdiInfo[i]->DocType==WNDTYPE_ICONEDIT){
     255                if(lstrcmpi(MdiInfo[i]->path.c_str(),filepath)==0) break;
    256256            }
    257257            hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    344344
    345345    mdic.lParam=0;
     346    mdic.style |= WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;
    346347    hChild=(HWND)SendMessage(hClient,WM_MDICREATE,0,(long)&mdic);   //ウィンドウ作成
    347348
     
    369370
    370371    //ウィンドウのID登録
    371     MdiInfo.push_back( MDIINFO() );
     372    MdiInfo.push_back( new MDIINFO() );
    372373    i = MdiInfo.size()-1;
    373     MdiInfo[i].hwnd=hChild;
    374     MdiInfo[i].DocType=WNDTYPE_ICONEDIT;
    375     MdiInfo[i].title = str;
     374    MdiInfo[i]->hwnd=hChild;
     375    MdiInfo[i]->DocType=WNDTYPE_ICONEDIT;
     376    MdiInfo[i]->title = str;
    376377    if(filepath)
    377378    {
    378         MdiInfo[i].path = filepath;
     379        MdiInfo[i]->path = filepath;
    379380    }
    380381    else
    381382    {
    382         MdiInfo[i].path = "";
    383     }
    384 
    385     MdiInfo[i].MdiIconEditInfo=(MDIICONEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDIICONEDITINFO));
    386     MdiInfo[i].MdiIconEditInfo->hMain=hMain;
    387     MdiInfo[i].MdiIconEditInfo->hToolDlg=hToolDlg;
    388     MdiInfo[i].MdiIconEditInfo->hButtonsDlg=hButtonsDlg;
    389     MdiInfo[i].MdiIconEditInfo->hColorDlg=hColorDlg;
     383        MdiInfo[i]->path = "";
     384    }
     385
     386    MdiInfo[i]->MdiIconEditInfo=(MDIICONEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDIICONEDITINFO));
     387    MdiInfo[i]->MdiIconEditInfo->hMain=hMain;
     388    MdiInfo[i]->MdiIconEditInfo->hToolDlg=hToolDlg;
     389    MdiInfo[i]->MdiIconEditInfo->hButtonsDlg=hButtonsDlg;
     390    MdiInfo[i]->MdiIconEditInfo->hColorDlg=hColorDlg;
    390391    hdc=GetDC(hMain);
    391     MdiInfo[i].MdiIconEditInfo->memdc=CreateCompatibleDC(hdc);
    392     MdiInfo[i].MdiIconEditInfo->hMemBmp=CreateCompatibleBitmap(hdc,600,400);
    393     SelectObject(MdiInfo[i].MdiIconEditInfo->memdc,MdiInfo[i].MdiIconEditInfo->hMemBmp);
     392    MdiInfo[i]->MdiIconEditInfo->memdc=CreateCompatibleDC(hdc);
     393    MdiInfo[i]->MdiIconEditInfo->hMemBmp=CreateCompatibleBitmap(hdc,600,400);
     394    SelectObject(MdiInfo[i]->MdiIconEditInfo->memdc,MdiInfo[i]->MdiIconEditInfo->hMemBmp);
    394395    ReleaseDC(hMain,hdc);
    395396
    396     MdiInfo[i].MdiIconEditInfo->SelectLevel=0;
    397 
    398     MdiInfo[i].MdiIconEditInfo->num=IconNum;
    399     MdiInfo[i].MdiIconEditInfo->SelectIconNum=0;
    400     memcpy(MdiInfo[i].MdiIconEditInfo->pIconImage,pImageBuffer,sizeof(DWORD)*IconNum);
    401 
    402     memcpy(MdiInfo[i].MdiIconEditInfo->dwBytesInRes,dwBytesInRes,sizeof(DWORD)*IconNum);
    403 
    404     MdiInfo[i].MdiIconEditInfo->NowTool=IDC_TOOL_PEN;
    405     MdiInfo[i].MdiIconEditInfo->MainColor=RGB(0,0,0);
     397    MdiInfo[i]->MdiIconEditInfo->SelectLevel=0;
     398
     399    MdiInfo[i]->MdiIconEditInfo->num=IconNum;
     400    MdiInfo[i]->MdiIconEditInfo->SelectIconNum=0;
     401    memcpy(MdiInfo[i]->MdiIconEditInfo->pIconImage,pImageBuffer,sizeof(DWORD)*IconNum);
     402
     403    memcpy(MdiInfo[i]->MdiIconEditInfo->dwBytesInRes,dwBytesInRes,sizeof(DWORD)*IconNum);
     404
     405    MdiInfo[i]->MdiIconEditInfo->NowTool=IDC_TOOL_PEN;
     406    MdiInfo[i]->MdiIconEditInfo->MainColor=RGB(0,0,0);
    406407    extern COLORREF TransparentClrRef;
    407     MdiInfo[i].MdiIconEditInfo->SubColor=TransparentClrRef;
    408 
    409     for(i2=0;i2<MdiInfo[i].MdiIconEditInfo->num;i2++){
    410         MdiInfo[i].MdiIconEditInfo->undo[i2].NowPos=0;
    411         memset(MdiInfo[i].MdiIconEditInfo->undo[i2].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
    412     }
    413     MdiInfo[i].MdiIconEditInfo->bModify=0;
     408    MdiInfo[i]->MdiIconEditInfo->SubColor=TransparentClrRef;
     409
     410    for(i2=0;i2<MdiInfo[i]->MdiIconEditInfo->num;i2++){
     411        MdiInfo[i]->MdiIconEditInfo->undo[i2].NowPos=0;
     412        memset(MdiInfo[i]->MdiIconEditInfo->undo[i2].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
     413    }
     414    MdiInfo[i]->MdiIconEditInfo->bModify=0;
    414415
    415416
     
    417418    //メモリへ初期描画を行う
    418419    HBRUSH hOldBrush;
    419     hOldBrush=(HBRUSH)SelectObject(MdiInfo[i].MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
    420     PatBlt(MdiInfo[i].MdiIconEditInfo->memdc,0,0,600,400,PATCOPY);
    421     SelectObject(MdiInfo[i].MdiIconEditInfo->memdc,hOldBrush);
     420    hOldBrush=(HBRUSH)SelectObject(MdiInfo[i]->MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
     421    PatBlt(MdiInfo[i]->MdiIconEditInfo->memdc,0,0,600,400,PATCOPY);
     422    SelectObject(MdiInfo[i]->MdiIconEditInfo->memdc,hOldBrush);
    422423    DrawIconToMemBmp(i,0);
    423424
     
    430431    ResetIconType(i);
    431432
    432     if(MdiInfo[i].MdiIconEditInfo->num<=1)
     433    if(MdiInfo[i]->MdiIconEditInfo->num<=1)
    433434        EnableWindow(GetDlgItem(hToolDlg,IDC_DELETE_ICONTYPE),0);
    434435
     
    460461    *((WORD *)(buffer+i2))=1;   //idType
    461462    i2+=sizeof(WORD);
    462     *((WORD *)(buffer+i2))=MdiInfo[WndNum].MdiIconEditInfo->num;    //idCount
     463    *((WORD *)(buffer+i2))=MdiInfo[WndNum]->MdiIconEditInfo->num;   //idCount
    463464    i2+=sizeof(WORD);
    464465
     
    470471    //イメージバッファの初期位置
    471472    IconDirEntry.dwImageOffset=sizeof(ICONDIR)+
    472         sizeof(ICONDIRENTRY)*MdiInfo[WndNum].MdiIconEditInfo->num;
    473 
    474     for(i=0;i<MdiInfo[WndNum].MdiIconEditInfo->num;i++){
     473        sizeof(ICONDIRENTRY)*MdiInfo[WndNum]->MdiIconEditInfo->num;
     474
     475    for(i=0;i<MdiInfo[WndNum]->MdiIconEditInfo->num;i++){
    475476        BITMAPINFOHEADER *pBmpInfoHdr;
    476         pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[i];
     477        pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[i];
    477478
    478479        IconDirEntry.bWidth=(BYTE)pBmpInfoHdr->biWidth;
     
    505506    ////////////////////
    506507    // イメージバッファ
    507     for(i=0;i<MdiInfo[WndNum].MdiIconEditInfo->num;i++){
     508    for(i=0;i<MdiInfo[WndNum]->MdiIconEditInfo->num;i++){
    508509        memcpy(buffer+i2,
    509             MdiInfo[WndNum].MdiIconEditInfo->pIconImage[i],
     510            MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[i],
    510511            ImgBufSize[i]);
    511512
     
    538539            if(i==-1) return 0; //ウィンドウが初期状態の場合
    539540
    540             i=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[i].title.c_str());
     541            i=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[i]->title.c_str());
    541542            SendMessage(hDocCombo,CB_SETCURSEL,i,0);
    542543            SetStatusText(NULL);
     
    546547            WndNum=GetWndNum(hwnd);
    547548            if(WndNum==-1) break;
    548             ResizeIconWindow(MdiInfo[WndNum].MdiIconEditInfo->hMain,
    549                 MdiInfo[WndNum].MdiIconEditInfo->hToolDlg,
    550                 MdiInfo[WndNum].MdiIconEditInfo->hColorDlg,
     549            ResizeIconWindow(MdiInfo[WndNum]->MdiIconEditInfo->hMain,
     550                MdiInfo[WndNum]->MdiIconEditInfo->hToolDlg,
     551                MdiInfo[WndNum]->MdiIconEditInfo->hColorDlg,
    551552                LOWORD(lParam),HIWORD(lParam));
    552553            break;
  • trunk/ab5.0/abdev/abdev/IconEditor_Color.cpp

    r625 r629  
    3131                //透明色をクリックした場合
    3232                if(message==WM_LBUTTONDOWN)
    33                     MdiInfo[WndNum].MdiIconEditInfo->MainColor=TransparentClrRef;
     33                    MdiInfo[WndNum]->MdiIconEditInfo->MainColor=TransparentClrRef;
    3434                else
    35                     MdiInfo[WndNum].MdiIconEditInfo->SubColor=TransparentClrRef;
     35                    MdiInfo[WndNum]->MdiIconEditInfo->SubColor=TransparentClrRef;
    3636                InvalidateRect(hwnd,NULL,0);
    3737                return 1;
     
    5252
    5353            if(message==WM_LBUTTONDOWN)
    54                 MdiInfo[WndNum].MdiIconEditInfo->MainColor=ColorRef;
     54                MdiInfo[WndNum]->MdiIconEditInfo->MainColor=ColorRef;
    5555            else
    56                 MdiInfo[WndNum].MdiIconEditInfo->SubColor=ColorRef;
     56                MdiInfo[WndNum]->MdiIconEditInfo->SubColor=ColorRef;
    5757
    5858            InvalidateRect(hwnd,NULL,0);
     
    7878
    7979            //カラーテーブルを取得
    80             pRgbq=(RGBQUAD *)(MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
     80            pRgbq=(RGBQUAD *)(MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
    8181
    8282            hdc=BeginPaint(hwnd,&ps);
    8383            hPen=CreatePen(PS_SOLID,0,RGB(0,0,0));
    8484            hOldPen=(HPEN)SelectObject(hdc,hPen);
    85             if(MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biBitCount==4){
     85            if(MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biBitCount==4){
    8686                ////////
    8787                // 16色
     
    154154
    155155            //現在選択中のサブカラーを表示
    156             hBrush=CreateSolidBrush(MdiInfo[WndNum].MdiIconEditInfo->SubColor);
     156            hBrush=CreateSolidBrush(MdiInfo[WndNum]->MdiIconEditInfo->SubColor);
    157157            hOldBrush=(HBRUSH)SelectObject(hdc,hBrush);
    158158            Rectangle(hdc,
     
    165165
    166166            //現在選択中のメインカラーを表示
    167             hBrush=CreateSolidBrush(MdiInfo[WndNum].MdiIconEditInfo->MainColor);
     167            hBrush=CreateSolidBrush(MdiInfo[WndNum]->MdiIconEditInfo->MainColor);
    168168            hOldBrush=(HBRUSH)SelectObject(hdc,hBrush);
    169169            Rectangle(hdc,
  • trunk/ab5.0/abdev/abdev/IconEditor_Main.cpp

    r625 r629  
    1515    if(pRect->left<0) pRect->left=0;
    1616    if(pRect->top<0) pRect->top=0;
    17     if(pRect->left>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth)
    18         pRect->left=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth-1;
    19     if(pRect->top>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2)
    20         pRect->top=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2-1;
     17    if(pRect->left>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth)
     18        pRect->left=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth-1;
     19    if(pRect->top>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2)
     20        pRect->top=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2-1;
    2121
    2222    if(pRect->right<0) pRect->right=0;
    2323    if(pRect->bottom<0) pRect->bottom=0;
    24     if(pRect->right>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth)
    25         pRect->right=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth-1;
    26     if(pRect->bottom>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2)
    27         pRect->bottom=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2-1;
     24    if(pRect->right>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth)
     25        pRect->right=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth-1;
     26    if(pRect->bottom>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2)
     27        pRect->bottom=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2-1;
    2828}
    2929void GetZoomedPos(POINT *pPos){
     
    3535
    3636    if(x<0||y<0||
    37         x>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth||
    38         y>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2)
     37        x>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth||
     38        y>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2)
    3939        return;
    4040
     
    5252
    5353    //カラーテーブルを取得
    54     pRgbq=(RGBQUAD *)(MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
    55 
    56     i2=(int)pow((double)2,(double)MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biBitCount);
     54    pRgbq=(RGBQUAD *)(MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
     55
     56    i2=(int)pow((double)2,(double)MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biBitCount);
    5757    for(i=0;i<i2;i++){
    5858        if(ColorRef==RGB(pRgbq[i].rgbRed,pRgbq[i].rgbGreen,pRgbq[i].rgbBlue)) break;
     
    7474    //何も選択されていない場合は0を返す
    7575    sw=0;
    76     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==0) return 0;
    77     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==1){
     76    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==0) return 0;
     77    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==1){
    7878        IconEdit_SelectImage(WndNum);
    7979        sw=1;
    8080    }
    8181
    82     size.cx=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left+1;
    83     size.cy=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top+1;
    84 
    85     hDC=CreateCompatibleDC(MdiInfo[WndNum].MdiIconEditInfo->memdc);
     82    size.cx=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left+1;
     83    size.cy=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top+1;
     84
     85    hDC=CreateCompatibleDC(MdiInfo[WndNum]->MdiIconEditInfo->memdc);
    8686    hBmp=CreateCompatibleBitmap(
    87         MdiInfo[WndNum].MdiIconEditInfo->memdc,
     87        MdiInfo[WndNum]->MdiIconEditInfo->memdc,
    8888        size.cx,
    8989        size.cy);
     
    9191
    9292    BitBlt(hDC,0,0,size.cx,size.cy,
    93         MdiInfo[WndNum].MdiIconEditInfo->memdc,
    94         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left,
    95         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top,
     93        MdiInfo[WndNum]->MdiIconEditInfo->memdc,
     94        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left,
     95        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top,
    9696        SRCCOPY);
    9797
     
    9999
    100100    if(sw){
    101         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    102         MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=1;
     101        DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     102        MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=1;
    103103    }
    104104
     
    113113    BITMAP Bitmap;
    114114
    115     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2)
     115    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2)
    116116        IconEdit_PasteImage(WndNum);
    117117
    118118    GetObject(hBmp,sizeof(Bitmap),&Bitmap);
    119119
    120     hDC=CreateCompatibleDC(MdiInfo[WndNum].MdiIconEditInfo->memdc);
    121     MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp=
    122         CreateCompatibleBitmap(MdiInfo[WndNum].MdiIconEditInfo->memdc,Bitmap.bmWidth,Bitmap.bmHeight);
    123     SelectObject(hDC,MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    124     hDC2=CreateCompatibleDC(MdiInfo[WndNum].MdiIconEditInfo->memdc);
     120    hDC=CreateCompatibleDC(MdiInfo[WndNum]->MdiIconEditInfo->memdc);
     121    MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp=
     122        CreateCompatibleBitmap(MdiInfo[WndNum]->MdiIconEditInfo->memdc,Bitmap.bmWidth,Bitmap.bmHeight);
     123    SelectObject(hDC,MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     124    hDC2=CreateCompatibleDC(MdiInfo[WndNum]->MdiIconEditInfo->memdc);
    125125    SelectObject(hDC2,hBmp);
    126126
     
    131131    DeleteDC(hDC2);
    132132
    133     MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left=0;
    134     MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top=0;
    135     MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right=Bitmap.bmWidth-1;
    136     MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom=Bitmap.bmHeight-1;
    137 
    138     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,0);
    139 
    140     MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=2;
     133    MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left=0;
     134    MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top=0;
     135    MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right=Bitmap.bmWidth-1;
     136    MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom=Bitmap.bmHeight-1;
     137
     138    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,0);
     139
     140    MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=2;
    141141}
    142142
     
    145145    HDC hDC;
    146146
    147     size.cx=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left+1;
    148     size.cy=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top+1;
    149 
    150     hDC=CreateCompatibleDC(MdiInfo[WndNum].MdiIconEditInfo->memdc);
    151     MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp=
    152         CreateCompatibleBitmap(MdiInfo[WndNum].MdiIconEditInfo->memdc,size.cx,size.cy);
    153     SelectObject(hDC,MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
     147    size.cx=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left+1;
     148    size.cy=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top+1;
     149
     150    hDC=CreateCompatibleDC(MdiInfo[WndNum]->MdiIconEditInfo->memdc);
     151    MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp=
     152        CreateCompatibleBitmap(MdiInfo[WndNum]->MdiIconEditInfo->memdc,size.cx,size.cy);
     153    SelectObject(hDC,MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
    154154    BitBlt(hDC,0,0,size.cx,size.cy,
    155         MdiInfo[WndNum].MdiIconEditInfo->memdc,
    156         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left,
    157         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top,
     155        MdiInfo[WndNum]->MdiIconEditInfo->memdc,
     156        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left,
     157        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top,
    158158        SRCCOPY);
    159159    DeleteDC(hDC);
    160160
    161     MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=2;
     161    MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=2;
    162162}
    163163void IconEdit_PasteImage(int WndNum){
     
    179179    IconEdit_NoticeChanging(WndNum);
    180180
    181     GetObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp,sizeof(BITMAP),&Bitmap);
     181    GetObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp,sizeof(BITMAP),&Bitmap);
    182182    pSelectingBuffer=(COLORREF *)HeapAlloc(hHeap,0,Bitmap.bmWidth*Bitmap.bmHeight*sizeof(COLORREF));
    183183    SelectingBitmapInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
     
    187187    SelectingBitmapInfo.bmiHeader.biBitCount=32;
    188188    SelectingBitmapInfo.bmiHeader.biCompression=BI_RGB;
    189     GetDIBits(MdiInfo[WndNum].MdiIconEditInfo->memdc,
    190         MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp,
     189    GetDIBits(MdiInfo[WndNum]->MdiIconEditInfo->memdc,
     190        MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp,
    191191        0,Bitmap.bmHeight,
    192192        pSelectingBuffer,&SelectingBitmapInfo,DIB_RGB_COLORS);
    193193
    194     pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     194    pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    195195
    196196    //カラーテーブルを取得
    197     pRgbq=(RGBQUAD *)(MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
     197    pRgbq=(RGBQUAD *)(MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
    198198
    199199    //ビットバッファを取得
    200     pBuffer=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+
     200    pBuffer=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+
    201201        sizeof(BITMAPINFOHEADER);
    202202    if(pBmpInfoHdr->biBitCount<=8)
     
    206206    pMaskBuf=pBuffer+pBmpInfoHdr->biBitCount*pBmpInfoHdr->biWidth*(pBmpInfoHdr->biHeight/2)/8;
    207207
    208     for(y=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom;y>=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top;y--){
    209         for(x=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left;x<=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right;x++){
     208    for(y=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom;y>=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top;y--){
     209        for(x=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left;x<=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right;x++){
    210210            if(x<0||y<0||
    211                 x>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth||
    212                 y>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2){
     211                x>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth||
     212                y>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2){
    213213                //範囲外の場合
    214214                continue;
    215215            }
    216216
    217             selecting_x=x-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left;
    218             selecting_y=y-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top;
     217            selecting_x=x-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left;
     218            selecting_y=y-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top;
    219219            dwRgbq=pSelectingBuffer[(Bitmap.bmHeight-1-selecting_y)*Bitmap.bmWidth+selecting_x];
    220220
     
    284284    HeapDefaultFree(pSelectingBuffer);
    285285
    286     DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    287     MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     286    DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     287    MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    288288
    289289    DrawIconToMemBmp(WndNum,0);
    290     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,0);
     290    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,0);
    291291}
    292292
     
    301301    BITMAPINFOHEADER *pBmpInfoHdr;
    302302
    303     pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     303    pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    304304
    305305    if( !(pBmpInfoHdr->biBitCount == 4 || pBmpInfoHdr->biBitCount == 8 ) ){
     
    310310
    311311    hPen=CreatePen(PS_SOLID,0,RGB(200,200,200));
    312     hOldPen=(HPEN)SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hPen);
     312    hOldPen=(HPEN)SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hPen);
    313313
    314314    //カラーテーブルを取得
    315     pRgbq=(RGBQUAD *)(MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
     315    pRgbq=(RGBQUAD *)(MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
    316316
    317317    //ビットバッファを取得
    318     pBuffer=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+
     318    pBuffer=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+
    319319        sizeof(BITMAPINFOHEADER);
    320320    if(pBmpInfoHdr->biBitCount<=8)
     
    344344            if(i2){
    345345                hBrush=CreateSolidBrush(TransparentClrRef);
    346                 hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hBrush);
     346                hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hBrush);
    347347                pos.x=x;
    348348                pos.y=y;
    349349                GetZoomedPos(&pos);
    350                 Rectangle(MdiInfo[WndNum].MdiIconEditInfo->memdc,
     350                Rectangle(MdiInfo[WndNum]->MdiIconEditInfo->memdc,
    351351                    pos.x,
    352352                    pos.y,
    353353                    pos.x+11,
    354354                    pos.y+11);
    355                 SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hOldBrush);
     355                SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hOldBrush);
    356356                DeleteObject(hBrush);
    357357
    358                 SetPixel(MdiInfo[WndNum].MdiIconEditInfo->memdc,x,y,TransparentClrRef);
     358                SetPixel(MdiInfo[WndNum]->MdiIconEditInfo->memdc,x,y,TransparentClrRef);
    359359                continue;
    360360            }
     
    377377
    378378            hBrush=CreateSolidBrush(ColorRef);
    379             hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hBrush);
     379            hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hBrush);
    380380            pos.x=x;
    381381            pos.y=y;
    382382            GetZoomedPos(&pos);
    383             Rectangle(MdiInfo[WndNum].MdiIconEditInfo->memdc,
     383            Rectangle(MdiInfo[WndNum]->MdiIconEditInfo->memdc,
    384384                pos.x,
    385385                pos.y,
    386386                pos.x+11,
    387387                pos.y+11);
    388             SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hOldBrush);
     388            SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hOldBrush);
    389389            DeleteObject(hBrush);
    390390
    391             SetPixel(MdiInfo[WndNum].MdiIconEditInfo->memdc,x,y,ColorRef);
    392         }
    393     }
    394 
    395     SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hOldPen);
     391            SetPixel(MdiInfo[WndNum]->MdiIconEditInfo->memdc,x,y,ColorRef);
     392        }
     393    }
     394
     395    SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hOldPen);
    396396    DeleteObject(hPen);
    397397}
     
    404404
    405405    if(x<0||y<0) return;
    406     if(x>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth||
    407         y>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2)
     406    if(x>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth||
     407        y>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2)
    408408        return;
    409409
    410     pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
    411 
    412     pBuffer=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+
     410    pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
     411
     412    pBuffer=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+
    413413        sizeof(BITMAPINFOHEADER);
    414414    pBuffer+=sizeof(DWORD)*(int)pow((double)2,(double)pBmpInfoHdr->biBitCount);
     
    466466
    467467    if(x<0||y<0) return 0;
    468     if(x>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth||
    469         y>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2)
     468    if(x>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth||
     469        y>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2)
    470470        return 0;
    471471
    472     pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     472    pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    473473
    474474    //カラーテーブルを取得
    475     pRgbq=(RGBQUAD *)(MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
     475    pRgbq=(RGBQUAD *)(MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+sizeof(BITMAPINFOHEADER));
    476476
    477477    //通常バッファを取得
    478     pBuffer=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]+
     478    pBuffer=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]+
    479479        sizeof(BITMAPINFOHEADER)+
    480480        sizeof(DWORD)*(int)pow((double)2,(double)pBmpInfoHdr->biBitCount);
     
    567567
    568568    if(x<0||y<0) return;
    569     if(x>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biWidth||
    570         y>=MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]->biHeight/2)
     569    if(x>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biWidth||
     570        y>=MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]->biHeight/2)
    571571        return;
    572572
     
    676676        pRect->right,
    677677        pRect->bottom,
    678         GetColorCode(WndNum,MdiInfo[WndNum].MdiIconEditInfo->SubColor),
    679         GetColorCode(WndNum,MdiInfo[WndNum].MdiIconEditInfo->SubColor),1);
     678        GetColorCode(WndNum,MdiInfo[WndNum]->MdiIconEditInfo->SubColor),
     679        GetColorCode(WndNum,MdiInfo[WndNum]->MdiIconEditInfo->SubColor),1);
    680680
    681681    DrawIconToMemBmp(WndNum,0);
    682     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,0);
     682    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,0);
    683683}
    684684
     
    697697    //以前の選択フレームを消去
    698698    BITMAPINFOHEADER *pBmpInfoHdr;
    699     pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     699    pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    700700    pos.x=pBmpInfoHdr->biWidth;
    701701    pos.y=pBmpInfoHdr->biHeight/2;
    702702    GetZoomedPos(&pos);
    703     BitBlt(hdc,0,0,pos.x,pos.y,MdiInfo[WndNum].MdiIconEditInfo->memdc,0,0,SRCCOPY);
     703    BitBlt(hdc,0,0,pos.x,pos.y,MdiInfo[WndNum]->MdiIconEditInfo->memdc,0,0,SRCCOPY);
    704704
    705705
     
    735735    RECT rect;
    736736
    737     rect.left=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left*PIXEL_WIDTH+ZOOMED_XPOS;
    738     rect.top=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top*PIXEL_WIDTH;
    739     rect.right=(MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right+1)*PIXEL_WIDTH+ZOOMED_XPOS+1;
    740     rect.bottom=(MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom+1)*PIXEL_WIDTH+1;
     737    rect.left=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left*PIXEL_WIDTH+ZOOMED_XPOS;
     738    rect.top=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top*PIXEL_WIDTH;
     739    rect.right=(MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right+1)*PIXEL_WIDTH+ZOOMED_XPOS+1;
     740    rect.bottom=(MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom+1)*PIXEL_WIDTH+1;
    741741
    742742    SetBkMode(hdc,TRANSPARENT);
     
    810810    COLORREF *pSelectingBuffer;
    811811
    812     GetObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp,sizeof(BITMAP),&Bitmap);
     812    GetObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp,sizeof(BITMAP),&Bitmap);
    813813    pSelectingBuffer=(COLORREF *)HeapAlloc(hHeap,0,Bitmap.bmWidth*Bitmap.bmHeight*sizeof(COLORREF));
    814814    SelectingBitmapInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
     
    818818    SelectingBitmapInfo.bmiHeader.biBitCount=32;
    819819    SelectingBitmapInfo.bmiHeader.biCompression=BI_RGB;
    820     GetDIBits(MdiInfo[WndNum].MdiIconEditInfo->memdc,
    821         MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp,
     820    GetDIBits(MdiInfo[WndNum]->MdiIconEditInfo->memdc,
     821        MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp,
    822822        0,Bitmap.bmHeight,
    823823        pSelectingBuffer,&SelectingBitmapInfo,DIB_RGB_COLORS);
     
    855855    RECT rect;
    856856
    857     pos.x=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left;
    858     pos.y=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top;
     857    pos.x=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left;
     858    pos.y=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top;
    859859    GetZoomedPos(&pos);
    860860    rect.left=pos.x;
    861861    rect.top=pos.y;
    862     pos.x=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right+1;
    863     pos.y=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom+1;
     862    pos.x=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right+1;
     863    pos.y=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom+1;
    864864    GetZoomedPos(&pos);
    865865    rect.right=pos.x;
     
    878878    POINT pos;
    879879
    880     size.cx=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left;
    881     size.cy=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom-MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top;
    882     hDC2=CreateCompatibleDC(MdiInfo[WndNum].MdiIconEditInfo->memdc);
    883     SelectObject(hDC2,MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
     880    size.cx=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left;
     881    size.cy=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom-MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top;
     882    hDC2=CreateCompatibleDC(MdiInfo[WndNum]->MdiIconEditInfo->memdc);
     883    SelectObject(hDC2,MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
    884884    BitBlt(hdc,
    885         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left,
    886         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top,
     885        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left,
     886        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top,
    887887        size.cx,size.cy,
    888888        hDC2,0,0,SRCCOPY);
     
    890890
    891891    //拡大選択イメージを表示
    892     pos.x=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left;
    893     pos.y=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top;
     892    pos.x=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left;
     893    pos.y=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top;
    894894    DrawZoomedBitmap(hdc,WndNum,&pos);
    895895}
     
    11401140            if(message==WM_LBUTTONDOWN){
    11411141                dwDrag=1;
    1142                 MainClrRef=MdiInfo[WndNum].MdiIconEditInfo->MainColor;
    1143                 SubClrRef=MdiInfo[WndNum].MdiIconEditInfo->SubColor;
     1142                MainClrRef=MdiInfo[WndNum]->MdiIconEditInfo->MainColor;
     1143                SubClrRef=MdiInfo[WndNum]->MdiIconEditInfo->SubColor;
    11441144            }
    11451145            else{
    11461146                dwDrag=2;
    1147                 MainClrRef=MdiInfo[WndNum].MdiIconEditInfo->SubColor;
    1148                 SubClrRef=MdiInfo[WndNum].MdiIconEditInfo->MainColor;
    1149             }
    1150 
    1151             if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
     1147                MainClrRef=MdiInfo[WndNum]->MdiIconEditInfo->SubColor;
     1148                SubClrRef=MdiInfo[WndNum]->MdiIconEditInfo->MainColor;
     1149            }
     1150
     1151            if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
    11521152                if(dwDrag==2){
    11531153                    dwDrag=0;
     
    11561156                }
    11571157
    1158                 if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel){
     1158                if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel){
    11591159                    NowDragging=IconEdit_GetStateOfDraggingFrame(WndNum,LOWORD(lParam),HIWORD(lParam));
    11601160                    if(NowDragging==0){
    1161                         if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==1){
    1162                             MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     1161                        if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==1){
     1162                            MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    11631163                            InvalidateRect(hwnd,NULL,0);
    11641164                        }
    1165                         else if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2)
     1165                        else if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2)
    11661166                            IconEdit_PasteImage(WndNum);
    11671167
     
    11691169                    }
    11701170                    else if(NowDragging==FRAME_INSIDE){
    1171                         if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==1){
     1171                        if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==1){
    11721172                            IconEdit_SelectImage(WndNum);
    1173                             IconEdit_EraseRect(WndNum,&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);
     1173                            IconEdit_EraseRect(WndNum,&MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect);
    11741174                        }
    11751175
    1176                         OldRect=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect;
     1176                        OldRect=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect;
    11771177                    }
    11781178                }
     
    11851185                InvalidateRect(hwnd,NULL,0);
    11861186            }
    1187             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_PEN){
     1187            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_PEN){
    11881188                //変更情報
    11891189                IconEdit_NoticeChanging(WndNum);
     
    12011201                SetCursor(LoadCursor(hResInst,MAKEINTRESOURCE(IDC_CURSOR_PEN)));
    12021202            }
    1203             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILL){
     1203            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILL){
    12041204                //変更情報
    12051205                IconEdit_NoticeChanging(WndNum);
     
    12161216                SetCursor(LoadCursor(hResInst,MAKEINTRESOURCE(IDC_CURSOR_FILL)));
    12171217            }
    1218             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_LINE||
    1219                 MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE||
    1220                 MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT||
    1221                 MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2||
    1222                 MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
     1218            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_LINE||
     1219                MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE||
     1220                MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT||
     1221                MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2||
     1222                MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
    12231223                hdc=GetDC(hwnd);
    12241224                TempLine(hdc,WndNum,pos.x,pos.y,pos.x,pos.y,MainClrRef);
     
    12421242
    12431243            if(dwDrag==1){
    1244                 MainClrRef=MdiInfo[WndNum].MdiIconEditInfo->MainColor;
    1245                 SubClrRef=MdiInfo[WndNum].MdiIconEditInfo->SubColor;
     1244                MainClrRef=MdiInfo[WndNum]->MdiIconEditInfo->MainColor;
     1245                SubClrRef=MdiInfo[WndNum]->MdiIconEditInfo->SubColor;
    12461246            }
    12471247            else{
    1248                 MainClrRef=MdiInfo[WndNum].MdiIconEditInfo->SubColor;
    1249                 SubClrRef=MdiInfo[WndNum].MdiIconEditInfo->MainColor;
     1248                MainClrRef=MdiInfo[WndNum]->MdiIconEditInfo->SubColor;
     1249                SubClrRef=MdiInfo[WndNum]->MdiIconEditInfo->MainColor;
    12501250            }
    12511251
     
    12541254
    12551255            bRedrawMemBmp=0;
    1256             if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
     1256            if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
    12571257                if(NowDragging==SELECTING_FRAME){
    12581258                    if(LastPos.x==pos.x&&LastPos.y==pos.y){
     
    12651265                    rect.bottom=pos.y;
    12661266
    1267                     RectNaturalFormat(&rect,&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);
    1268                     LimitRectFormat(WndNum,&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);
    1269                     MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=1;
     1267                    RectNaturalFormat(&rect,&MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect);
     1268                    LimitRectFormat(WndNum,&MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect);
     1269                    MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=1;
    12701270                    InvalidateRect(hwnd,NULL,0);
    12711271                }
     
    12731273                    InvalidateRect(hwnd,NULL,0);
    12741274            }
    1275             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_LINE){
     1275            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_LINE){
    12761276                //変更情報
    12771277                IconEdit_NoticeChanging(WndNum);
     
    12811281                bRedrawMemBmp=1;
    12821282            }
    1283             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE){
     1283            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE){
    12841284                //変更情報
    12851285                IconEdit_NoticeChanging(WndNum);
     
    12891289                bRedrawMemBmp=1;
    12901290            }
    1291             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT){
     1291            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT){
    12921292                //変更情報
    12931293                IconEdit_NoticeChanging(WndNum);
     
    12991299                bRedrawMemBmp=1;
    13001300            }
    1301             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2){
     1301            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2){
    13021302                //変更情報
    13031303                IconEdit_NoticeChanging(WndNum);
     
    13091309                bRedrawMemBmp=1;
    13101310            }
    1311             else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
     1311            else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
    13121312                //変更情報
    13131313                IconEdit_NoticeChanging(WndNum);
     
    13371337
    13381338            if(dwDrag==1){
    1339                 MainClrRef=MdiInfo[WndNum].MdiIconEditInfo->MainColor;
    1340                 SubClrRef=MdiInfo[WndNum].MdiIconEditInfo->SubColor;
     1339                MainClrRef=MdiInfo[WndNum]->MdiIconEditInfo->MainColor;
     1340                SubClrRef=MdiInfo[WndNum]->MdiIconEditInfo->SubColor;
    13411341            }
    13421342            else{
    1343                 MainClrRef=MdiInfo[WndNum].MdiIconEditInfo->SubColor;
    1344                 SubClrRef=MdiInfo[WndNum].MdiIconEditInfo->MainColor;
     1343                MainClrRef=MdiInfo[WndNum]->MdiIconEditInfo->SubColor;
     1344                SubClrRef=MdiInfo[WndNum]->MdiIconEditInfo->MainColor;
    13451345            }
    13461346
    13471347            if(dwDrag){
    1348                 if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
     1348                if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
    13491349                    if(NowDragging==SELECTING_FRAME){
    13501350                        //範囲選択中
     
    13611361                        dx=pos.x-LastPos.x;
    13621362                        dy=pos.y-LastPos.y;
    1363                         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left+=dx;
    1364                         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right+=dx;
    1365                         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top+=dy;
    1366                         MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom+=dy;
     1363                        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left+=dx;
     1364                        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right+=dx;
     1365                        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top+=dy;
     1366                        MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom+=dy;
    13671367                        LastPos=pos;
    13681368
     
    13761376
    13771377                        hRgn=CreateRectRgnIndirect(&OldRect);
    1378                         hRgn2=CreateRectRgnIndirect(&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);
     1378                        hRgn2=CreateRectRgnIndirect(&MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect);
    13791379                        CombineRgn(hRgn,hRgn,hRgn2,RGN_XOR);
    13801380                        DeleteObject(hRgn2);
     
    13941394                        DeleteObject(hRgn2);
    13951395
    1396                         p2.x=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.left;
    1397                         p2.y=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.top;
     1396                        p2.x=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.left;
     1397                        p2.y=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.top;
    13981398                        GetZoomedPos(&p2);
    13991399                        rect.left=p2.x;
    14001400                        rect.top=p2.y;
    1401                         p2.x=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.right;
    1402                         p2.y=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect.bottom;
     1401                        p2.x=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.right;
     1402                        p2.y=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect.bottom;
    14031403                        GetZoomedPos(&p2);
    14041404                        rect.right=p2.x+1;
     
    14151415                        ReleaseDC(hwnd,hdc);
    14161416
    1417                         OldRect=MdiInfo[WndNum].MdiIconEditInfo->DraggingRect;
     1417                        OldRect=MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect;
    14181418                    }
    14191419                }
    1420                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_PEN){
     1420                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_PEN){
    14211421                    if(abs(pos.x-LastPos.x)>1||abs(pos.y-LastPos.y)>1){
    14221422                        IconEdit_DrawLine(WndNum,LastPos.x,LastPos.y,pos.x,pos.y,GetColorCode(WndNum,MainClrRef));
     
    14421442                    LastPos=pos;
    14431443                }
    1444                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_LINE){
     1444                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_LINE){
    14451445                    InvalidateRect(hwnd,NULL,0);
    14461446                    UpdateWindow(hwnd);
     
    14501450                    ReleaseDC(hwnd,hdc);
    14511451                }
    1452                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE){
     1452                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE){
    14531453                    InvalidateRect(hwnd,NULL,0);
    14541454                    UpdateWindow(hwnd);
     
    14581458                    ReleaseDC(hwnd,hdc);
    14591459                }
    1460                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT){
     1460                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT){
    14611461                    InvalidateRect(hwnd,NULL,0);
    14621462                    UpdateWindow(hwnd);
     
    14681468                    ReleaseDC(hwnd,hdc);
    14691469                }
    1470                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2){
     1470                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2){
    14711471                    InvalidateRect(hwnd,NULL,0);
    14721472                    UpdateWindow(hwnd);
     
    14781478                    ReleaseDC(hwnd,hdc);
    14791479                }
    1480                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
     1480                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
    14811481                    InvalidateRect(hwnd,NULL,0);
    14821482                    UpdateWindow(hwnd);
     
    14891489            else{
    14901490                //ドラッグ中でないとき
    1491                 if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
    1492                     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel)
     1491                if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
     1492                    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel)
    14931493                        SetCursorByState(IconEdit_GetStateOfDraggingFrame(WndNum,LOWORD(lParam),HIWORD(lParam)));
    14941494                    else
    14951495                        SetCursor(LoadCursor(NULL,IDC_CROSS));
    14961496                }
    1497                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_PEN)
     1497                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_PEN)
    14981498                    SetCursor(LoadCursor(hResInst,MAKEINTRESOURCE(IDC_CURSOR_PEN)));
    1499                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILL)
     1499                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILL)
    15001500                    SetCursor(LoadCursor(hResInst,MAKEINTRESOURCE(IDC_CURSOR_FILL)));
    1501                 else if(MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_LINE||
    1502                     MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE||
    1503                     MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT||
    1504                     MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2||
    1505                     MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
     1501                else if(MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_LINE||
     1502                    MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_RECTANGLE||
     1503                    MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT||
     1504                    MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_FILLRECT2||
     1505                    MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_ELLIPSE){
    15061506                    SetCursor(LoadCursor(NULL,IDC_CROSS));
    15071507                }
     
    15121512                case VK_ESCAPE:
    15131513                    WndNum=GetWndNum(GetParent(hwnd));
    1514                     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2){
    1515                         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    1516                         MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     1514                    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2){
     1515                        DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     1516                        MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    15171517                    }
    15181518                    InvalidateRect(hwnd,NULL,0);
     
    15261526            WndNum=GetWndNum(GetParent(hwnd));
    15271527            BITMAPINFOHEADER *pBmpInfoHdr;
    1528             pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     1528            pBmpInfoHdr=(BITMAPINFOHEADER *)MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    15291529
    15301530            hdc=BeginPaint(hwnd,&ps);
     
    15371537                size.cx,
    15381538                size.cy,
    1539                 MdiInfo[WndNum].MdiIconEditInfo->memdc,0,0,SRCCOPY);
     1539                MdiInfo[WndNum]->MdiIconEditInfo->memdc,0,0,SRCCOPY);
    15401540
    15411541            HBRUSH hOldBrush;
     
    15501550                PATCOPY);
    15511551
    1552             if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==1)
     1552            if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==1)
    15531553                IconEdit_DrawSelectingRect(hdc,WndNum);
    1554             if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2){
     1554            if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2){
    15551555                DrawSelectingImage(hdc,WndNum);
    15561556                if(dwDrag==0) IconEdit_DrawSelectingRect(hdc,WndNum);
  • trunk/ab5.0/abdev/abdev/IconEditor_Tool.cpp

    r625 r629  
    8080                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    8181                    if(LOWORD(wParam)!=IDC_TOOL_SELECT&&
    82                         MdiInfo[WndNum].MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
    83                         MdiInfo[WndNum].MdiIconEditInfo->NowTool=LOWORD(wParam);
    84                         if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel){
    85                             if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2)
    86                                 DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    87                             MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     82                        MdiInfo[WndNum]->MdiIconEditInfo->NowTool==IDC_TOOL_SELECT){
     83                        MdiInfo[WndNum]->MdiIconEditInfo->NowTool=LOWORD(wParam);
     84                        if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel){
     85                            if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2)
     86                                DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     87                            MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    8888                        }
    89                         InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,0);
     89                        InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,0);
    9090                    }
    91                     else MdiInfo[WndNum].MdiIconEditInfo->NowTool=LOWORD(wParam);
     91                    else MdiInfo[WndNum]->MdiIconEditInfo->NowTool=LOWORD(wParam);
    9292                    return 1;
    9393            }
     
    116116
    117117            memset(bExist,0,sizeof(BOOL)*4);
    118             for(i=0;i<MdiInfo[WndNum].MdiIconEditInfo->num;i++){
    119                 if(MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biWidth==16&&
    120                     MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biBitCount==4){
     118            for(i=0;i<MdiInfo[WndNum]->MdiIconEditInfo->num;i++){
     119                if(MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biWidth==16&&
     120                    MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biBitCount==4){
    121121                    bExist[0]=1;
    122122                }
    123                 if(MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biWidth==16&&
    124                     MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biBitCount==8){
     123                if(MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biWidth==16&&
     124                    MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biBitCount==8){
    125125                    bExist[1]=1;
    126126                }
    127                 if(MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biWidth==32&&
    128                     MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biBitCount==4){
     127                if(MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biWidth==32&&
     128                    MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biBitCount==4){
    129129                    bExist[2]=1;
    130130                }
    131                 if(MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biWidth==32&&
    132                     MdiInfo[WndNum].MdiIconEditInfo->pBmpHdr[i]->biBitCount==8){
     131                if(MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biWidth==32&&
     132                    MdiInfo[WndNum]->MdiIconEditInfo->pBmpHdr[i]->biBitCount==8){
    133133                    bExist[3]=1;
    134134                }
     
    196196                    DeleteIconType(WndNum);
    197197
    198                     if(MdiInfo[WndNum].MdiIconEditInfo->num<=1)
     198                    if(MdiInfo[WndNum]->MdiIconEditInfo->num<=1)
    199199                        EnableWindow(GetDlgItem(hwnd,IDC_DELETE_ICONTYPE),0);
    200200                    return 1;
     
    204204
    205205                        //イメージ選択用のメモリを解放
    206                         if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2)
    207                             DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    208                         MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
    209 
    210                         MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum=
     206                        if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2)
     207                            DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     208                        MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
     209
     210                        MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum=
    211211                            SendDlgItemMessage(hwnd,IDC_ICONTYPECOMBO,CB_GETCURSEL,0,0);
    212212
    213213                        HBRUSH hOldBrush;
    214                         hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
    215                         PatBlt(MdiInfo[WndNum].MdiIconEditInfo->memdc,0,0,400,400,PATCOPY);
    216                         SelectObject(MdiInfo[WndNum].MdiIconEditInfo->memdc,hOldBrush);
     214                        hOldBrush=(HBRUSH)SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,GetStockObject(WHITE_BRUSH));
     215                        PatBlt(MdiInfo[WndNum]->MdiIconEditInfo->memdc,0,0,400,400,PATCOPY);
     216                        SelectObject(MdiInfo[WndNum]->MdiIconEditInfo->memdc,hOldBrush);
    217217                        DrawIconToMemBmp(WndNum,0);
    218218
    219                         InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,1);
    220                         InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hColorDlg,NULL,0);
     219                        InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,1);
     220                        InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hColorDlg,NULL,0);
    221221                    }
    222222                    return 1;
  • trunk/ab5.0/abdev/abdev/IconEditor_UndoRedo.cpp

    r625 r629  
    88    ICONEDIT_UNDOSTATE *pUndoState;
    99
    10     pUndoState=&MdiInfo[WndNum].MdiIconEditInfo->undo[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     10    pUndoState=&MdiInfo[WndNum]->MdiIconEditInfo->undo[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    1111
    1212    i=pUndoState->NowPos-1;
     
    1818    pUndoState->NowPos=i;
    1919
    20     pByte=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
    21     MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]=
     20    pByte=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
     21    MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]=
    2222        pUndoState->lpData[i];
    2323    pUndoState->lpData[i]=pByte;
    2424
    2525    //選択フレームを消去
    26     if(MdiInfo[WndNum].MdiIconEditInfo->SelectLevel==2){
    27         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    28         MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
     26    if(MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel==2){
     27        DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     28        MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
    2929    }
    3030
    3131    //再描画
    3232    DrawIconToMemBmp(WndNum,0);
    33     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,0);
     33    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,0);
    3434
    35     MdiInfo[WndNum].MdiIconEditInfo->bModify=1;
     35    MdiInfo[WndNum]->MdiIconEditInfo->bModify=1;
    3636
    3737    //メニューを有効化
     
    4242    ICONEDIT_UNDOSTATE *pUndoState;
    4343
    44     pUndoState=&MdiInfo[WndNum].MdiIconEditInfo->undo[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     44    pUndoState=&MdiInfo[WndNum]->MdiIconEditInfo->undo[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    4545
    4646    if(!pUndoState->lpData[pUndoState->NowPos]){
     
    4949    }
    5050
    51     pByte=MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
    52     MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]=
     51    pByte=MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
     52    MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]=
    5353        pUndoState->lpData[pUndoState->NowPos];
    5454    pUndoState->lpData[pUndoState->NowPos]=pByte;
    5555
    5656    DrawIconToMemBmp(WndNum,0);
    57     InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hMain,NULL,0);
     57    InvalidateRect(MdiInfo[WndNum]->MdiIconEditInfo->hMain,NULL,0);
    5858
    5959    pUndoState->NowPos++;
    6060    if(pUndoState->NowPos==MAX_ICONEDIT_UNDONUM) pUndoState->NowPos=0;
    6161
    62     MdiInfo[WndNum].MdiIconEditInfo->bModify=1;
     62    MdiInfo[WndNum]->MdiIconEditInfo->bModify=1;
    6363
    6464    ResetState_UndoMenu();
     
    6969    ICONEDIT_UNDOSTATE *pUndoState;
    7070
    71     pUndoState=&MdiInfo[WndNum].MdiIconEditInfo->undo[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum];
     71    pUndoState=&MdiInfo[WndNum]->MdiIconEditInfo->undo[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum];
    7272
    7373    //Redoされた場合の不要なデータを削除する
     
    8080
    8181    pUndoState->lpData[pUndoState->NowPos]=(BYTE *)
    82         HeapAlloc(hHeap,0,MdiInfo[WndNum].MdiIconEditInfo->dwBytesInRes[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]);
     82        HeapAlloc(hHeap,0,MdiInfo[WndNum]->MdiIconEditInfo->dwBytesInRes[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]);
    8383
    8484    memcpy(pUndoState->lpData[pUndoState->NowPos],
    85         MdiInfo[WndNum].MdiIconEditInfo->pIconImage[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum],
    86         MdiInfo[WndNum].MdiIconEditInfo->dwBytesInRes[MdiInfo[WndNum].MdiIconEditInfo->SelectIconNum]);
     85        MdiInfo[WndNum]->MdiIconEditInfo->pIconImage[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum],
     86        MdiInfo[WndNum]->MdiIconEditInfo->dwBytesInRes[MdiInfo[WndNum]->MdiIconEditInfo->SelectIconNum]);
    8787
    8888    pUndoState->NowPos++;
     
    9494    }
    9595
    96     MdiInfo[WndNum].MdiIconEditInfo->bModify=1;
     96    MdiInfo[WndNum]->MdiIconEditInfo->bModify=1;
    9797
    9898    ResetState_UndoMenu();
  • trunk/ab5.0/abdev/abdev/MenuProc.cpp

    r626 r629  
    121121    // ウィンドウ プロパティを更新
    122122    for(i=0;i<MdiInfo.size();i++){
    123         if(MdiInfo[i].hwnd&&MdiInfo[i].DocType==WNDTYPE_RAD){
    124             if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
    125                 ChangePropertyWindow(i,GetWndInfoNum(MdiInfo[i].path));
     123        if(MdiInfo[i]->hwnd&&MdiInfo[i]->DocType==WNDTYPE_RAD){
     124            if(MdiInfo[i]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
     125                ChangePropertyWindow(i,GetWndInfoNum(MdiInfo[i]->path));
    126126        }
    127127    }
     
    135135    //ウィンドウが開かれている場合は閉じる
    136136    for(i=0;i<MdiInfo.size();i++){
    137         if(MdiInfo[i].hwnd&&lstrcmpi(projectInfo.pMenuInfo[MenuInfoNum].IdName,MdiInfo[i].path.c_str())==0){
    138             SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
     137        if(MdiInfo[i]->hwnd&&lstrcmpi(projectInfo.pMenuInfo[MenuInfoNum].IdName,MdiInfo[i]->path.c_str())==0){
     138            SendMessage(MdiInfo[i]->hwnd,WM_CLOSE,0,0);
    139139            break;
    140140        }
     
    165165    // ウィンドウ プロパティを更新
    166166    for(i=0;i<MdiInfo.size();i++){
    167         if(MdiInfo[i].hwnd&&MdiInfo[i].DocType==WNDTYPE_RAD){
    168             if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
    169                 ChangePropertyWindow(i,GetWndInfoNum(MdiInfo[i].path.c_str()));
     167        if(MdiInfo[i]->hwnd&&MdiInfo[i]->DocType==WNDTYPE_RAD){
     168            if(MdiInfo[i]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
     169                ChangePropertyWindow(i,GetWndInfoNum(MdiInfo[i]->path.c_str()));
    170170        }
    171171    }
     
    199199    while(hChild){
    200200        i=GetWndNum(hChild);
    201         if(MdiInfo[i].DocType==WNDTYPE_MENU){
    202             if(lstrcmpi(MdiInfo[i].path.c_str(),pMenuInfo->IdName)==0) break;
     201        if(MdiInfo[i]->DocType==WNDTYPE_MENU){
     202            if(lstrcmpi(MdiInfo[i]->path.c_str(),pMenuInfo->IdName)==0) break;
    203203        }
    204204        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    228228
    229229    mdic.lParam=0;
     230    mdic.style |= WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;
    230231    hChild=(HWND)SendMessage(hClient,WM_MDICREATE,0,(long)&mdic);   //ウィンドウ作成
    231232
     
    248249
    249250    //ウィンドウのID登録
    250     MdiInfo.push_back( MDIINFO() );
     251    MdiInfo.push_back( new MDIINFO() );
    251252    i = MdiInfo.size()-1;
    252     MdiInfo[i].hwnd=hChild;
    253     MdiInfo[i].DocType=WNDTYPE_MENU;
    254     MdiInfo[i].title = pMenuInfo->IdName;
    255     MdiInfo[i].path = pMenuInfo->IdName;
     253    MdiInfo[i]->hwnd=hChild;
     254    MdiInfo[i]->DocType=WNDTYPE_MENU;
     255    MdiInfo[i]->title = pMenuInfo->IdName;
     256    MdiInfo[i]->path = pMenuInfo->IdName;
    256257
    257258
     
    259260    //MENU ウィンドウ情報
    260261
    261     MdiInfo[i].MdiMenuInfo=(MDIMENUINFO *)GlobalAlloc(GPTR,sizeof(MDIMENUINFO));
    262 
    263     MdiInfo[i].MdiMenuInfo->hList=hListWnd;
    264 
    265     MdiInfo[i].MdiMenuInfo->hMenuEdit=hMenuEdit;
    266     MdiInfo[i].MdiMenuInfo->hEdit_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_PROJECT_MENUEDIT),hMenuEdit,(DLGPROC)MenuEditDlg);
     262    MdiInfo[i]->MdiMenuInfo=(MDIMENUINFO *)GlobalAlloc(GPTR,sizeof(MDIMENUINFO));
     263
     264    MdiInfo[i]->MdiMenuInfo->hList=hListWnd;
     265
     266    MdiInfo[i]->MdiMenuInfo->hMenuEdit=hMenuEdit;
     267    MdiInfo[i]->MdiMenuInfo->hEdit_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_PROJECT_MENUEDIT),hMenuEdit,(DLGPROC)MenuEditDlg);
    267268
    268269    SCROLLINFO ScrollInfo;
     
    270271    ScrollInfo.fMask=SIF_POS;
    271272    ScrollInfo.nPos=0;
    272     SetScrollInfo(MdiInfo[i].MdiMenuInfo->hMenuEdit,SB_VERT,&ScrollInfo,1);
     273    SetScrollInfo(MdiInfo[i]->MdiMenuInfo->hMenuEdit,SB_VERT,&ScrollInfo,1);
    273274
    274275    SendMessage(hListWnd,LB_RESETCONTENT,0,0);
     
    282283    //ウィンドウ位置を初期化
    283284    GetClientRect(hChild,&rect);
    284     MoveWindow(MdiInfo[i].MdiMenuInfo->hMenuEdit,0,0,172,rect.bottom,1);
    285     MoveWindow(MdiInfo[i].MdiMenuInfo->hList,172,0,rect.right-172,rect.bottom,1);
     285    MoveWindow(MdiInfo[i]->MdiMenuInfo->hMenuEdit,0,0,172,rect.bottom,1);
     286    MoveWindow(MdiInfo[i]->MdiMenuInfo->hList,172,0,rect.right-172,rect.bottom,1);
    286287
    287288    //Docコンボボックスに追加
     
    334335            SetPosCenter(hwnd);
    335336            i=GetWndNum(GetWindow(hClient,GW_CHILD));
    336             GetDlgItemText(MdiInfo[i].MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,temporary,MAX_PATH);
     337            GetDlgItemText(MdiInfo[i]->MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,temporary,MAX_PATH);
    337338            SetDlgItemText(hwnd,IDC_IDNAME,temporary);
    338             GetDlgItemText(MdiInfo[i].MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,temporary,MAX_PATH);
     339            GetDlgItemText(MdiInfo[i]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,temporary,MAX_PATH);
    339340            SetDlgItemText(hwnd,IDC_CAPTION,temporary);
    340341
     
    396397                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    397398                    if(WndNum==-1) return 1;
    398                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    399 
    400                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     399                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     400
     401                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    401402                    if(i4==LB_ERR) return 1;
    402403                    i2=0;
     
    410411                    if(!pMenuInfo->pMenuInfo){
    411412                        //ID
    412                         SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,pMenuInfo->IdName);
     413                        SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,pMenuInfo->IdName);
    413414                    }
    414415
    415416                    //キャプション
    416                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,pMenuInfo->caption);
     417                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,pMenuInfo->caption);
    417418
    418419                    //リストへキャプションを反映
    419                     SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
     420                    SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
    420421                    memset(temporary,' ',i3*4);
    421422                    lstrcpy(temporary+i3*4,pMenuInfo->caption);
    422                     SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
    423 
    424                     SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
     423                    SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
     424
     425                    SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
    425426                    projectInfo.ModifyOfMaterial=1;
    426427                    return 1;
     
    428429                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    429430                    if(WndNum==-1) return 1;
    430                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    431 
    432                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     431                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     432
     433                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    433434                    if(i4==LB_ERR) return 1;
    434435                    i2=0;
     
    446447
    447448                        for(i2=0;i2<i;i2++)
    448                             SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_DELETESTRING,i4+1,0);
     449                            SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_DELETESTRING,i4+1,0);
    449450
    450451                        HeapDefaultFree(pMenuInfo->pMenuInfo);
     
    468469                        pMenuInfo->type=MFT_STRING;
    469470                    }
    470                     SendMessage(MdiInfo[WndNum].hwnd,WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum].MdiMenuInfo->hList);
     471                    SendMessage(MdiInfo[WndNum]->hwnd,WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum]->MdiMenuInfo->hList);
    471472                    projectInfo.ModifyOfMaterial=1;
    472473                    return 1;
     
    474475                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    475476                    if(WndNum==-1) return 1;
    476                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    477 
    478                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     477                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     478
     479                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    479480                    if(i4==LB_ERR) return 1;
    480481                    i2=0;
     
    490491                        pMenuInfo->type=MFT_SEPARATOR;
    491492
    492                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
     493                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
    493494                        memset(temporary,' ',i3*4);
    494495                        lstrcpy(temporary+i3*4,"-");
    495                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
     496                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
    496497                    }
    497498                    else{
     
    504505                        pMenuInfo->type=MFT_STRING;
    505506
    506                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
     507                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
    507508                        memset(temporary,' ',i3*4);
    508509                        lstrcpy(temporary+i3*4,pMenuInfo->caption);
    509                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
    510                     }
    511                     SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
    512                     SendMessage(MdiInfo[WndNum].hwnd,WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum].MdiMenuInfo->hList);
     510                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
     511                    }
     512                    SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
     513                    SendMessage(MdiInfo[WndNum]->hwnd,WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum]->MdiMenuInfo->hList);
    513514                    return 1;
    514515                case IDC_CHECKED:
    515516                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    516517                    if(WndNum==-1) return 1;
    517                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    518 
    519                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     518                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     519
     520                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    520521                    if(i4==LB_ERR) return 1;
    521522                    i2=0;
     
    534535                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    535536                    if(WndNum==-1) return 1;
    536                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    537 
    538                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     537                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     538
     539                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    539540                    if(i4==LB_ERR) return 1;
    540541                    i2=0;
     
    553554                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    554555                    if(WndNum==-1) return 1;
    555                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
     556                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
    556557
    557558                    if(projectInfo.pMenuInfo[MenuInfoNum].NumberOfMenu==0){
     
    573574                        projectInfo.pMenuInfo[MenuInfoNum].NumberOfMenu++;
    574575
    575                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_INSERTSTRING,0,(long)pMenuInfo->caption);
    576                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,0,0);
    577                         SendMessage(GetParent(MdiInfo[WndNum].MdiMenuInfo->hMenuEdit),WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum].MdiMenuInfo->hList);
     576                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_INSERTSTRING,0,(long)pMenuInfo->caption);
     577                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,0,0);
     578                        SendMessage(GetParent(MdiInfo[WndNum]->MdiMenuInfo->hMenuEdit),WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum]->MdiMenuInfo->hList);
    578579                    }
    579580                    else{
    580                         i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     581                        i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    581582                        if(i4==LB_ERR){
    582583                            //"新しいメニュー アイテムの挿入位置を選択して下さい"
     
    622623                        pMenuInfo->NumberOfMenu++;
    623624
    624                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
    625                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
    626                         SendMessage(GetParent(MdiInfo[WndNum].MdiMenuInfo->hMenuEdit),WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum].MdiMenuInfo->hList);
     625                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_INSERTSTRING,i4,(long)temporary);
     626                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
     627                        SendMessage(GetParent(MdiInfo[WndNum]->MdiMenuInfo->hMenuEdit),WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)MdiInfo[WndNum]->MdiMenuInfo->hList);
    627628                    }
    628629                    projectInfo.ModifyOfMaterial=1;
     
    631632                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    632633                    if(WndNum==-1) return 1;
    633                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    634 
    635                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     634                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     635
     636                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    636637                    if(i4==LB_ERR){
    637638                        //"削除するメニュー アイテムを選択して下さい"
     
    664665
    665666                    for(i=0;i<i3;i++)
    666                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
    667 
    668                     i=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCOUNT,0,0)-1;
     667                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_DELETESTRING,i4,0);
     668
     669                    i=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCOUNT,0,0)-1;
    669670                    if(i){
    670671                        if(i<i4) i4=i;
    671                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
     672                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,i4,0);
    672673                    }
    673674
     
    677678                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    678679                    if(WndNum==-1) return 1;
    679                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    680 
    681                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     680                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     681
     682                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    682683                    if(i4==LB_ERR){
    683684                        //"移動するメニュー アイテムを選択して下さい"
     
    695696                    memcpy(&pMenuInfo->pMenuInfo[i2+1],&tempMenuInfo,sizeof(MENU_INFO));
    696697
    697                     SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_RESETCONTENT,0,0);
    698                     SetMenuDataList(MdiInfo[WndNum].MdiMenuInfo->hList,&projectInfo.pMenuInfo[MenuInfoNum],0);
     698                    SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_RESETCONTENT,0,0);
     699                    SetMenuDataList(MdiInfo[WndNum]->MdiMenuInfo->hList,&projectInfo.pMenuInfo[MenuInfoNum],0);
    699700                    if(!pMenuInfo->pMenuInfo[i2].pMenuInfo)
    700                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,i4-1,0);
     701                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,i4-1,0);
    701702
    702703                    projectInfo.ModifyOfMaterial=1;
     
    705706                    WndNum=GetWndNum(GetParent(GetParent(hwnd)));
    706707                    if(WndNum==-1) return 1;
    707                     MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    708 
    709                     i4=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     708                    MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     709
     710                    i4=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    710711                    if(i4==LB_ERR){
    711712                        //"移動するメニュー アイテムを選択して下さい"
     
    722723                    memcpy(&pMenuInfo->pMenuInfo[i2+1],&tempMenuInfo,sizeof(MENU_INFO));
    723724
    724                     SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_RESETCONTENT,0,0);
    725                     SetMenuDataList(MdiInfo[WndNum].MdiMenuInfo->hList,&projectInfo.pMenuInfo[MenuInfoNum],0);
     725                    SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_RESETCONTENT,0,0);
     726                    SetMenuDataList(MdiInfo[WndNum]->MdiMenuInfo->hList,&projectInfo.pMenuInfo[MenuInfoNum],0);
    726727                    if(!pMenuInfo->pMenuInfo[i2].pMenuInfo)
    727                         SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_SETCURSEL,i4+1,0);
     728                        SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_SETCURSEL,i4+1,0);
    728729
    729730                    projectInfo.ModifyOfMaterial=1;
     
    770771            ScrollInfo.fMask=SIF_PAGE|SIF_RANGE|SIF_POS;
    771772            GetScrollInfo(hwnd,SB_VERT,&ScrollInfo);
    772             GetClientRect(MdiInfo[i].MdiMenuInfo->hEdit_Dlg,&rect);
     773            GetClientRect(MdiInfo[i]->MdiMenuInfo->hEdit_Dlg,&rect);
    773774            ScrollInfo.nMin=0;
    774775            ScrollInfo.nMax=rect.bottom;
     
    796797            WndNum=GetWndNum(hwnd);
    797798            if(WndNum==-1) return 0;
    798             MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum].path);
    799             if((HWND)lParam==MdiInfo[WndNum].MdiMenuInfo->hList&&HIWORD(wParam)==LBN_SELCHANGE){
    800                 i=SendMessage(MdiInfo[WndNum].MdiMenuInfo->hList,LB_GETCURSEL,0,0);
     799            MenuInfoNum=GetMenuInfoNum(MdiInfo[WndNum]->path);
     800            if((HWND)lParam==MdiInfo[WndNum]->MdiMenuInfo->hList&&HIWORD(wParam)==LBN_SELCHANGE){
     801                i=SendMessage(MdiInfo[WndNum]->MdiMenuInfo->hList,LB_GETCURSEL,0,0);
    801802                i2=0;
    802803                i3=0;
     
    805806
    806807                if(pMenuInfo->pMenuInfo){
    807                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,pMenuInfo->caption);
    808                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,"");
    809                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDSTATIC),0);
    810                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_RENAME),1);
    811                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_POPUP),1);
    812                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR),0);
    813                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CHECKED),1);
    814                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_DISABLED),1);
    815                     SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_POPUP,BM_SETCHECK,BST_CHECKED,0);
    816                     SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR,BM_SETCHECK,BST_UNCHECKED,0);
     808                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,pMenuInfo->caption);
     809                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,"");
     810                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDSTATIC),0);
     811                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_RENAME),1);
     812                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_POPUP),1);
     813                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR),0);
     814                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CHECKED),1);
     815                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_DISABLED),1);
     816                    SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_POPUP,BM_SETCHECK,BST_CHECKED,0);
     817                    SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR,BM_SETCHECK,BST_UNCHECKED,0);
    817818                }
    818819                else if(pMenuInfo->type==MFT_STRING){
    819                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,pMenuInfo->caption);
    820                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,pMenuInfo->IdName);
    821                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDSTATIC),1);
    822                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CAPTIONSTATIC),1);
    823                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_RENAME),1);
    824                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_POPUP),1);
    825                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR),1);
    826                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CHECKED),1);
    827                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_DISABLED),1);
    828                     SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_POPUP,BM_SETCHECK,BST_UNCHECKED,0);
    829                     SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR,BM_SETCHECK,BST_UNCHECKED,0);
     820                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,pMenuInfo->caption);
     821                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,pMenuInfo->IdName);
     822                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDSTATIC),1);
     823                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTIONSTATIC),1);
     824                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_RENAME),1);
     825                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_POPUP),1);
     826                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR),1);
     827                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CHECKED),1);
     828                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_DISABLED),1);
     829                    SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_POPUP,BM_SETCHECK,BST_UNCHECKED,0);
     830                    SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR,BM_SETCHECK,BST_UNCHECKED,0);
    830831                }
    831832                else if(pMenuInfo->type==MFT_SEPARATOR){
    832                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,"");
    833                     SetDlgItemText(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,"");
    834                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_IDSTATIC),0);
    835                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CAPTIONSTATIC),0);
    836                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_RENAME),0);
    837                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_POPUP),0);
    838                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR),1);
    839                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CHECKED),0);
    840                     EnableWindow(GetDlgItem(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_DISABLED),0);
    841                     SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_POPUP,BM_SETCHECK,BST_UNCHECKED,0);
    842                     SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR,BM_SETCHECK,BST_CHECKED,0);
     833                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTION,"");
     834                    SetDlgItemText(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDNAME,"");
     835                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_IDSTATIC),0);
     836                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CAPTIONSTATIC),0);
     837                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_RENAME),0);
     838                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_POPUP),0);
     839                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR),1);
     840                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CHECKED),0);
     841                    EnableWindow(GetDlgItem(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_DISABLED),0);
     842                    SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_POPUP,BM_SETCHECK,BST_UNCHECKED,0);
     843                    SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_SEPARATOR,BM_SETCHECK,BST_CHECKED,0);
    843844                }
    844845
    845846                if(pMenuInfo->state&MFS_CHECKED) i2=BST_CHECKED;
    846847                else i2=BST_UNCHECKED;
    847                 SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_CHECKED,BM_SETCHECK,i2,0);
     848                SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_CHECKED,BM_SETCHECK,i2,0);
    848849                if(pMenuInfo->state&MFS_DISABLED) i2=BST_CHECKED;
    849850                else i2=BST_UNCHECKED;
    850                 SendDlgItemMessage(MdiInfo[WndNum].MdiMenuInfo->hEdit_Dlg,IDC_DISABLED,BM_SETCHECK,i2,0);
     851                SendDlgItemMessage(MdiInfo[WndNum]->MdiMenuInfo->hEdit_Dlg,IDC_DISABLED,BM_SETCHECK,i2,0);
    851852            }
    852853            return 0;
     
    856857            if(i==-1) return 0; //ウィンドウが初期状態の場合
    857858
    858             i=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[i].title.c_str());
     859            i=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[i]->title.c_str());
    859860            SendMessage(hDocCombo,CB_SETCURSEL,i,0);
    860861            SetStatusText(NULL);
     
    864865            WndNum=GetWndNum(hwnd);
    865866            if(WndNum==-1) break;
    866             MoveWindow(MdiInfo[WndNum].MdiMenuInfo->hMenuEdit,0,0,172,HIWORD(lParam),1);
    867             MoveWindow(MdiInfo[WndNum].MdiMenuInfo->hList,172,0,LOWORD(lParam)-172,HIWORD(lParam),1);
     867            MoveWindow(MdiInfo[WndNum]->MdiMenuInfo->hMenuEdit,0,0,172,HIWORD(lParam),1);
     868            MoveWindow(MdiInfo[WndNum]->MdiMenuInfo->hList,172,0,LOWORD(lParam)-172,HIWORD(lParam),1);
    868869            break;
    869870        case WM_CLOSE:
  • trunk/ab5.0/abdev/abdev/MessageCallOperation.cpp

    r625 r629  
    4141    CallBackNameLen=pWindowInfo->GetCallbackName().size();
    4242
    43     buffer = ReadBuffer( projectInfo.GetWorkDir().GetPath() + pWindowInfo->GetSourceFileName() );
     43    buffer = ReadBuffer( projectInfo.GetWorkDir().GetPath() + pWindowInfo->GetSourceFileNameForOldVer( projectInfo.GetWorkDir().GetPath() ) );
    4444
    4545    *num=0;
     
    5050    //メッセージ
    5151    *ppItemEventInfo=(ITEMEVENTINFO *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,sizeof(ITEMEVENTINFO));
    52     for(i=0,i4=0;;i++){
    53         if(buffer[i]=='\0') break;
    54 
    55         //注釈(複数行)
    56         if(buffer[i]=='/'&&buffer[i+1]=='*'){
    57             i+=2;
    58             while(!(buffer[i]=='*'&&buffer[i+1]=='/')){
    59                 if(buffer[i]=='\0'){
    60                     i--;
    61                     break;
    62                 }
    63                 i++;
    64             }
    65             continue;
    66         }
    67 
    68         if((buffer[i]=='\r'&&buffer[i+1]=='\n'&&buffer[i+2]!='\0')||i==0){
    69             if(buffer[i]=='\r'&&buffer[i+1]=='\n') i2=i+2;
    70             else i2=i;
    71             while(buffer[i2]>='0'&&buffer[i2]<='9') i2++;
    72             while(buffer[i2]==' '||buffer[i2]=='\t') i2++;
    73             if(memicmp(buffer+i2,"Sub",3)==0&&(buffer[i2+3]==' '||buffer[i2+3]=='\t')){
    74                 i2+=4;
     52
     53    if( buffer )
     54    {
     55        for(i=0,i4=0;;i++){
     56            if(buffer[i]=='\0') break;
     57
     58            //注釈(複数行)
     59            if(buffer[i]=='/'&&buffer[i+1]=='*'){
     60                i+=2;
     61                while(!(buffer[i]=='*'&&buffer[i+1]=='/')){
     62                    if(buffer[i]=='\0'){
     63                        i--;
     64                        break;
     65                    }
     66                    i++;
     67                }
     68                continue;
     69            }
     70
     71            if((buffer[i]=='\r'&&buffer[i+1]=='\n'&&buffer[i+2]!='\0')||i==0){
     72                if(buffer[i]=='\r'&&buffer[i+1]=='\n') i2=i+2;
     73                else i2=i;
     74                while(buffer[i2]>='0'&&buffer[i2]<='9') i2++;
    7575                while(buffer[i2]==' '||buffer[i2]=='\t') i2++;
    76                 strncpy(temporary,buffer+i2,NameLen);
    77                 temporary[NameLen]=0;
    78                 if( pWindowInfo->GetName() == temporary && buffer[i2+NameLen] == '_' ){
    79                     for(i2+=NameLen+1,i3=0;;i2++,i3++){
    80                         if(!IsVariableChar(buffer[i2])){
    81                             temporary[i3]=0;
    82                             break;
    83                         }
    84                         temporary[i3]=buffer[i2];
    85                     }
    86                     i6=GetItemMessageInfo(WndInfoNum,temporary,temp2);
    87                     if(i6){
    88                         //アイテムメッセージ(WM_COMMAND、WM_NOTIFY)
    89                         for(i5=0;;i5++){
    90                             if((*ppItemEventInfo)[i5].IdName==0){
    91                                 *ppItemEventInfo=(ITEMEVENTINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,*ppItemEventInfo,(i4+2)*sizeof(ITEMEVENTINFO));
    92                                 (*ppItemEventInfo)[i4].IdName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
    93                                 lstrcpy((*ppItemEventInfo)[i4].IdName,temporary);
    94                                 (*ppItemEventInfo)[i4].pEventNames=(char **)HeapAlloc(hHeap,0,1);
    95                                 (*ppItemEventInfo)[i4].ClassID=i6;
    96                                 i4++;
     76                if(memicmp(buffer+i2,"Sub",3)==0&&(buffer[i2+3]==' '||buffer[i2+3]=='\t')){
     77                    i2+=4;
     78                    while(buffer[i2]==' '||buffer[i2]=='\t') i2++;
     79                    strncpy(temporary,buffer+i2,NameLen);
     80                    temporary[NameLen]=0;
     81                    if( pWindowInfo->GetName() == temporary && buffer[i2+NameLen] == '_' ){
     82                        for(i2+=NameLen+1,i3=0;;i2++,i3++){
     83                            if(!IsVariableChar(buffer[i2])){
     84                                temporary[i3]=0;
    9785                                break;
    9886                            }
    99                             if(lstrcmp((*ppItemEventInfo)[i5].IdName,temporary)==0) break;
     87                            temporary[i3]=buffer[i2];
    10088                        }
    101                         (*ppItemEventInfo)[i5].pEventNames=(char **)HeapReAlloc(hHeap,0,(*ppItemEventInfo)[i5].pEventNames,((*ppItemEventInfo)[i5].EventNum+1)*sizeof(char *));
    102                         (*ppItemEventInfo)[i5].pEventNames[(*ppItemEventInfo)[i5].EventNum]=(char *)HeapAlloc(hHeap,0,lstrlen(temp2)+1);
    103                         lstrcpy((*ppItemEventInfo)[i5].pEventNames[(*ppItemEventInfo)[i5].EventNum],temp2);
    104                         (*ppItemEventInfo)[i5].EventNum++;
     89                        i6=GetItemMessageInfo(WndInfoNum,temporary,temp2);
     90                        if(i6){
     91                            //アイテムメッセージ(WM_COMMAND、WM_NOTIFY)
     92                            for(i5=0;;i5++){
     93                                if((*ppItemEventInfo)[i5].IdName==0){
     94                                    *ppItemEventInfo=(ITEMEVENTINFO *)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY,*ppItemEventInfo,(i4+2)*sizeof(ITEMEVENTINFO));
     95                                    (*ppItemEventInfo)[i4].IdName=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
     96                                    lstrcpy((*ppItemEventInfo)[i4].IdName,temporary);
     97                                    (*ppItemEventInfo)[i4].pEventNames=(char **)HeapAlloc(hHeap,0,1);
     98                                    (*ppItemEventInfo)[i4].ClassID=i6;
     99                                    i4++;
     100                                    break;
     101                                }
     102                                if(lstrcmp((*ppItemEventInfo)[i5].IdName,temporary)==0) break;
     103                            }
     104                            (*ppItemEventInfo)[i5].pEventNames=(char **)HeapReAlloc(hHeap,0,(*ppItemEventInfo)[i5].pEventNames,((*ppItemEventInfo)[i5].EventNum+1)*sizeof(char *));
     105                            (*ppItemEventInfo)[i5].pEventNames[(*ppItemEventInfo)[i5].EventNum]=(char *)HeapAlloc(hHeap,0,lstrlen(temp2)+1);
     106                            lstrcpy((*ppItemEventInfo)[i5].pEventNames[(*ppItemEventInfo)[i5].EventNum],temp2);
     107                            (*ppItemEventInfo)[i5].EventNum++;
     108                        }
     109                        else if(temporary[0]){
     110                            //一般メッセージ
     111                            ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,(*num+1)*sizeof(char *));
     112                            ppNames[*num]=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
     113                            lstrcpy(ppNames[*num],temporary);
     114                            (*num)++;
     115                        }
    105116                    }
    106                     else if(temporary[0]){
    107                         //一般メッセージ
    108                         ppNames=(char **)HeapReAlloc(hHeap,0,ppNames,(*num+1)*sizeof(char *));
    109                         ppNames[*num]=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
    110                         lstrcpy(ppNames[*num],temporary);
    111                         (*num)++;
     117                }
     118                if(memicmp(buffer+i2,"Function",8)==0&&(buffer[i2+8]==' '||buffer[i2+8]=='\t')){
     119                    //[WndName]_WindowProcのみFunction定義
     120                    i2+=9;
     121                    while(buffer[i2]==' '||buffer[i2]=='\t') i2++;
     122                    if(memicmp(buffer+i2,pWindowInfo->GetCallbackName().c_str(),CallBackNameLen)==0&&
     123                        (buffer[i2+CallBackNameLen]==' '||buffer[i2+CallBackNameLen]=='\t'||buffer[i2+CallBackNameLen]=='(')){
     124                        *pbAlways=1;
    112125                    }
    113126                }
    114127            }
    115             if(memicmp(buffer+i2,"Function",8)==0&&(buffer[i2+8]==' '||buffer[i2+8]=='\t')){
    116                 //[WndName]_WindowProcのみFunction定義
    117                 i2+=9;
    118                 while(buffer[i2]==' '||buffer[i2]=='\t') i2++;
    119                 if(memicmp(buffer+i2,pWindowInfo->GetCallbackName().c_str(),CallBackNameLen)==0&&
    120                     (buffer[i2+CallBackNameLen]==' '||buffer[i2+CallBackNameLen]=='\t'||buffer[i2+CallBackNameLen]=='(')){
    121                     *pbAlways=1;
    122                 }
    123             }
    124         }
    125     }
    126     HeapDefaultFree(buffer);
     128        }
     129        HeapDefaultFree(buffer);
     130    }
    127131
    128132    return ppNames;
     
    136140    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    137141
    138     hChild=OpenFileWithExtension( projectInfo.GetWorkDir().GetPath() + pWindowInfo->GetSourceFileName() );
     142    hChild=OpenFileWithExtension( projectInfo.GetWorkDir().GetPath() + pWindowInfo->GetSourceFileNameForOldVer( projectInfo.GetWorkDir().GetPath() ) );
    139143    if(!hChild) return;
    140144    WndNum=GetWndNum(hChild);
    141145
    142     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     146    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    143147
    144148    for(i=0;;i++){
     
    195199        TextEdit_SetSel(WndNum,i+2,i+i2);
    196200    }
    197     SetFocus(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     201    SetFocus(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
    198202}
    199203void InsertEventToList(HWND hList,int ItemNum,char *EventName,char *MessageName,char *OutLine){
     
    221225
    222226    MaxCount=ListView_GetItemCount(hList);
    223     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
     227    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
    224228        if(dwEventType==EVENTTYPE_DEFAULT){
    225229            for(i=0;i<MaxCount;i++){
     
    296300                sprintf(EventName,"%s_%s_%s",
    297301                    pWindowInfo->GetName().c_str(),
    298                     pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->GetName().c_str(),
     302                    pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->GetName().c_str(),
    299303                    temporary);
    300304                break;
     
    303307        if(i==MaxCount) return 0;
    304308
    305         if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_LISTVIEW){
     309        if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_LISTVIEW){
    306310            //ListView
    307311            if(i==0) lstrcpy(Parameter,"ByRef nmListView As NMLISTVIEW");
     
    327331            else if(i==20) lstrcpy(Parameter,"ByRef nmLVDispInfo As NMLVDISPINFO");
    328332        }
    329         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_PROGRESSBAR){
     333        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_PROGRESSBAR){
    330334            //ProgressBar
    331335            lstrcpy(Parameter,"ByRef nmHdr As NMHDR");
    332336        }
    333         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_TRACKBAR){
     337        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_TRACKBAR){
    334338            //TrackBar
    335339            lstrcpy(Parameter,"ByRef nmHdr As NMHDR");
    336340        }
    337         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_TREEVIEW){
     341        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_TREEVIEW){
    338342            //TreeView
    339343            if(0<=i&&i<=7) lstrcpy(Parameter,"ByRef nmHdr As NMHDR");
    340344            else lstrcpy(Parameter,"ByRef nmTreeView As NMTREEVIEW");
    341345        }
    342         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_UPDOWN){
     346        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_UPDOWN){
    343347            //UpDown
    344348            if(i==0) lstrcpy(Parameter,"ByRef nmHdr As NMHDR");
     
    400404
    401405    WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    402     ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
     406    ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum]->path);
    403407    i=0;
    404     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
     408    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
    405409        EnableWindow(GetDlgItem(hDlg,IDC_DEFAULT),1);
    406410        EnableWindow(GetDlgItem(hDlg,IDC_MENU),1);
     
    458462        EnableWindow(GetDlgItem(hDlg,IDC_MMSYS),0);
    459463        SendDlgItemMessage(hDlg,IDC_DEFAULT,BM_SETCHECK,BST_CHECKED,0);
    460         if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_BUTTON){
     464        if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_BUTTON){
    461465            //Button
    462466            InsertEventToList(hList,i++,"Click","BN_CLICKED","ボタンがクリックされた時");
    463467            InsertEventToList(hList,i++,"DblClick","BN_DBLCLK","ボタンがダブル クリックされた時");
    464468        }
    465         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_CHECKBOX){
     469        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_CHECKBOX){
    466470            //CheckBox
    467471            InsertEventToList(hList,i++,"Click","BN_CLICKED","チェック ボックスがクリックされた時");
    468472            InsertEventToList(hList,i++,"DblClick","BN_DBLCLK","チェック ボックスがダブル クリックされた時");
    469473        }
    470         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_COMBOBOX){
     474        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_COMBOBOX){
    471475            //ComboBox
    472476            InsertEventToList(hList,i++,"CloseUp","CBN_CLOSEUP","リスト ボックスが非表示になる時");
     
    482486            InsertEventToList(hList,i++,"SetFocus","CBN_SETFOCUS","入力フォーカスを取得した時");
    483487        }
    484         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_EDIT){
     488        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_EDIT){
    485489            //Edit
    486490            InsertEventToList(hList,i++,"Change","EN_CHANGE","エディット ボックスの内容が変更された時(後処理)");
     
    493497            InsertEventToList(hList,i++,"VScroll","EN_VSCROLL","垂直スクロールを行った時");
    494498        }
    495         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_IMAGEBOX){
     499        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_IMAGEBOX){
    496500            //ImageBox
    497501            InsertEventToList(hList,i++,"Click","STN_CLICKED","イメージ ボックスがクリックされた時");
    498502            InsertEventToList(hList,i++,"DblClick","STN_DBLCLK","イメージ ボックスがダブル クリックされた時");
    499503        }
    500         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_LISTBOX){
     504        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_LISTBOX){
    501505            //ListBox
    502506            InsertEventToList(hList,i++,"SelChange","LBN_SELCHANGE","リスト内の選択が変更された時");
     
    507511            InsertEventToList(hList,i++,"SetFocus","LBN_SETFOCUS","入力フォーカスを取得した時");
    508512        }
    509         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_LISTVIEW){
     513        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_LISTVIEW){
    510514            //ListView
    511515            i=SetDefaultNotifyMessagesInList(hList,CT_LISTVIEW);
    512516        }
    513         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_PROGRESSBAR){
     517        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_PROGRESSBAR){
    514518            //ProgressBar
    515519            InsertEventToList(hList,i++,"OutOfMemory","NM_OUTOFMEMORY","メモリ不足でコントロールの動作が完了できない時");
    516520        }
    517         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_RADIOBUTTON){
     521        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_RADIOBUTTON){
    518522            //RadioButton
    519523            InsertEventToList(hList,i++,"Click","BN_CLICKED","ラジオ ボタンがクリックされた時");
    520524            InsertEventToList(hList,i++,"DblClick","BN_DBLCLK","ラジオ ボタンがダブル クリックされた時");
    521525        }
    522         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_STATIC){
     526        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_STATIC){
    523527            //Static
    524528            InsertEventToList(hList,i++,"Click","STN_CLICKED","スタティック テキストがクリックされた時");
    525529            InsertEventToList(hList,i++,"DblClick","STN_DBLCLK","スタティック テキストがダブル クリックされた時");
    526530        }
    527         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_TRACKBAR){
     531        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_TRACKBAR){
    528532            //TrackBar
    529533            InsertEventToList(hList,i++,"OutOfMemory","NM_OUTOFMEMORY","メモリ不足でコントロールの動作が完了できない時");
     
    531535            InsertEventToList(hList,i++,"CustomDraw","NM_CUSTOMDRAW ","カスタム描画操作の通知");
    532536        }
    533         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_TREEVIEW){
     537        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_TREEVIEW){
    534538            //TreeView
    535539            i=SetDefaultNotifyMessagesInList(hList,CT_TREEVIEW);
    536540        }
    537         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_UPDOWN){
     541        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_UPDOWN){
    538542            //UpDown
    539543            InsertEventToList(hList,i++,"OutOfMemory","NM_OUTOFMEMORY","メモリ不足でコントロールの動作が完了できない時");
     
    595599        hList=GetDlgItem(hwnd,IDC_EVENTLIST);
    596600        WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    597         WndInfoNum=GetWndInfoNum(MdiInfo[WndNum].path);
     601        WndInfoNum=GetWndInfoNum(MdiInfo[WndNum]->path);
    598602
    599603        ListView_DeleteAllItems(hList);
     
    644648            {
    645649                WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    646                 ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
     650                ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum]->path);
    647651                NowMenuNum=GetMenuInfoNum(pWindowInfo->GetMenuIdName().c_str());
    648652            }
     
    671675                    hList=GetDlgItem(hwnd,IDC_EVENTLIST);
    672676                    WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    673                     WndInfoNum=GetWndInfoNum(MdiInfo[WndNum].path);
     677                    WndInfoNum=GetWndInfoNum(MdiInfo[WndNum]->path);
    674678                    if(GetEventProcedureNameFromListView(hList,WndNum,WndInfoNum,temporary,temp2,dwEventType)){
    675679                        SelectProcedureOfMessageCall(WndInfoNum,temporary,temp2);
     
    689693                    hList=GetDlgItem(hwnd,IDC_EVENTLIST);
    690694                    WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    691                     WndInfoNum=GetWndInfoNum(MdiInfo[WndNum].path);
     695                    WndInfoNum=GetWndInfoNum(MdiInfo[WndNum]->path);
    692696                    if(GetEventProcedureNameFromListView(hList,WndNum,WndInfoNum,temporary,temp2,dwEventType)){
    693697                        sprintf(temporary+lstrlen(temporary),"(%s)",temp2);
  • trunk/ab5.0/abdev/abdev/ParameterHint.cpp

    r625 r629  
    3939
    4040        for(i=0;i<MdiInfo.size();i++){
    41             if(MdiInfo[i].hwnd){
    42                 if(lstrcmpi(MdiInfo[i].path.c_str(),temporary)==0) break;
     41            if(MdiInfo[i]->hwnd){
     42                if(lstrcmpi(MdiInfo[i]->path.c_str(),temporary)==0) break;
    4343            }
    4444        }
     
    4949        else{
    5050            //エディタから読み込む
    51             pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[i].pMdiTextEdit->buffer)+1);
    52             lstrcpy(pBuf,MdiInfo[i].pMdiTextEdit->buffer);
     51            pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[i]->pMdiTextEdit->buffer)+1);
     52            lstrcpy(pBuf,MdiInfo[i]->pMdiTextEdit->buffer);
    5353        }
    5454    }
     
    5959        WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    6060
    61         pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer)+1);
    62         lstrcpy(pBuf,MdiInfo[WndNum].pMdiTextEdit->buffer);
     61        pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[WndNum]->pMdiTextEdit->buffer)+1);
     62        lstrcpy(pBuf,MdiInfo[WndNum]->pMdiTextEdit->buffer);
    6363    }
    6464
     
    685685    char temp2[8192];
    686686
    687     pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     687    pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    688688
    689689    //キャレットが示すバッファインデックスを取得
    690690    iPos=GetBufferIndexFromCaretPos(
    691691        pBuf,
    692         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
    693         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     692        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x,
     693        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y);
    694694
    695695    static int Before_StartCaretY;
    696696    BOOL Before_StartCaretSwitch=0;
    697     if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y!=Before_StartCaretY){
    698         Before_StartCaretY=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
     697    if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y!=Before_StartCaretY){
     698        Before_StartCaretY=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y;
    699699        Before_StartCaretSwitch=1;
    700700    }
     
    966966            else{
    967967                if(MethodCheckInfo.hWnd){
    968                     UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);  //ちらつき防止
     968                    UpdateWindow(MdiInfo[WndNum]->pMdiTextEdit->hEdit); //ちらつき防止
    969969
    970970                    DestroyWindow(MethodCheckInfo.hWnd);
     
    12541254        ReleaseDC(MethodCheckInfo.hWnd,hdc);
    12551255
    1256         GetWindowRect(MdiInfo[i].hwnd,&rect);
     1256        GetWindowRect(MdiInfo[i]->hwnd,&rect);
    12571257        GetCaretPos(&pos);
    1258         ClientToScreen(MdiInfo[i].pMdiTextEdit->hEdit,&pos);
     1258        ClientToScreen(MdiInfo[i]->pMdiTextEdit->hEdit,&pos);
    12591259        rect.left=pos.x-20;
    12601260        rect.top=pos.y-pobj_nv->lf.lfHeight;
  • trunk/ab5.0/abdev/abdev/Print.cpp

    r626 r629  
    9393
    9494    char *buffer;
    95     buffer=MdiInfo[WndNum].pMdiTextEdit->buffer;
     95    buffer=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    9696    int i=0,i2=0,iPage=0;
    9797    for(i=0,i2=0;;i++,i2++){
     
    547547    memset(&di,0,sizeof(DOCINFO));
    548548    di.cbSize=sizeof(DOCINFO);
    549     di.lpszDocName=MdiInfo[WndNum].title.c_str();
     549    di.lpszDocName=MdiInfo[WndNum]->title.c_str();
    550550    if(StartDoc(pd.hDC,&di)==0){
    551551        MessageBox(hOwner,"印刷できません。プリンターの状況を確認してください。",APPLICATION_NAME,MB_OK | MB_ICONEXCLAMATION);
  • trunk/ab5.0/abdev/abdev/ProjectControl.cpp

    r625 r629  
    146146                            //ResetScrollbarが再描画時に呼び出されるので、再描画する
    147147                            WndNum=GetWndNum(hChild);
    148                             InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
    149                             UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     148                            InvalidateRect(MdiInfo[WndNum]->pMdiTextEdit->hEdit,NULL,0);
     149                            UpdateWindow(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
    150150                            TextEdit_SelectOneLine(WndNum,pobj_ClassTreeView->pProcInfo[i].code_pos,TRUE);
    151151
     
    506506                        SetWindowLongPtr(hwnd,GWL_EXSTYLE,WS_EX_STATICEDGE);
    507507                        SetParent(hwnd,hOwner);
    508                         ResizeOwnerWnd();
     508                        ActiveBasic::IDE::Program::mainFrame.Resized();
    509509
    510510                        ShowWindow(hProjectView_ToolWindow,SW_HIDE);
     
    517517                        SetParent(hwnd,hProjectView_ToolWindow);
    518518
    519                         ResizeOwnerWnd();
     519                        ActiveBasic::IDE::Program::mainFrame.Resized();
    520520                        ResizeProjectView_ToolWindow();
    521521
     
    12871287
    12881288                            //ResetScrollbarが再描画時に呼び出されるので、再描画する
    1289                             InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
    1290                             UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     1289                            InvalidateRect(MdiInfo[WndNum]->pMdiTextEdit->hEdit,NULL,0);
     1290                            UpdateWindow(MdiInfo[WndNum]->pMdiTextEdit->hEdit);
    12911291
    12921292                            if(temp2[i2]=='\0') goto EndToSetWorkFile;
     
    13161316                            si.fMask=SIF_POS;
    13171317                            si.nPos=pos.x;
    1318                             SetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_HORZ,&si,1);
     1318                            SetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_HORZ,&si,1);
    13191319                            si.nPos=pos.y;
    1320                             SetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si,1);
     1320                            SetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si,1);
    13211321
    13221322                            if(temp2[i2]=='\0') goto EndToSetWorkFile;
     
    15911591        WndNum=GetWndNum(hChild);
    15921592        sw=0;
    1593         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    1594             if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ){
     1593        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
     1594            if( MdiInfo[WndNum]->pMdiTextEdit->IsModified() ){
    15951595                for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){
    15961596                    projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    1597                     if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) sw=1;
    1598                 }
    1599             }
    1600         }
    1601         else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
    1602             if(MdiInfo[WndNum].MdiIconEditInfo->bModify){
     1597                    if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0) sw=1;
     1598                }
     1599            }
     1600        }
     1601        else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
     1602            if(MdiInfo[WndNum]->MdiIconEditInfo->bModify){
    16031603                BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.iconResources )
    16041604                {
    16051605                    lstrcpy(temporary,resourceItem.filepath.c_str());
    16061606                    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    1607                     if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) sw=1;
     1607                    if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0) sw=1;
    16081608                }
    16091609            }
     
    16481648    while(hChild){
    16491649        WndNum=GetWndNum(hChild);
    1650         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     1650        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    16511651            for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){
    16521652                projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    1653                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
     1653                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){
    16541654                    TextEdit_GetSel(WndNum,&CharRange);
    16551655
     
    16581658                    si.cbSize=sizeof(SCROLLINFO);
    16591659                    si.fMask=SIF_POS;
    1660                     GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_HORZ,&si);
     1660                    GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_HORZ,&si);
    16611661                    pos.x=si.nPos;
    1662                     GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si);
     1662                    GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si);
    16631663                    pos.y=si.nPos;
    16641664
     
    16741674            }
    16751675        }
    1676         else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
     1676        else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD){
    16771677            BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
    16781678            {
    1679                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),pWindowInfo->GetName().c_str())==0){
    1680                     sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path.c_str());
     1679                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),pWindowInfo->GetName().c_str())==0){
     1680                    sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum]->path.c_str());
    16811681                    i2+=lstrlen(buffer+i2);
    16821682                    break;
     
    16841684            }
    16851685        }
    1686         else if(MdiInfo[WndNum].DocType==WNDTYPE_MENU){
     1686        else if(MdiInfo[WndNum]->DocType==WNDTYPE_MENU){
    16871687            for(i=0;i<projectInfo.NumberOfMenu;i++){
    1688                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),projectInfo.pMenuInfo[i].IdName)==0){
    1689                     sprintf(buffer+i2,"menu,%s\r\n",MdiInfo[WndNum].path.c_str());
     1688                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),projectInfo.pMenuInfo[i].IdName)==0){
     1689                    sprintf(buffer+i2,"menu,%s\r\n",MdiInfo[WndNum]->path.c_str());
    16901690                    i2+=lstrlen(buffer+i2);
    16911691                    break;
     
    16931693            }
    16941694        }
    1695         else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     1695        else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
    16961696            BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.iconResources )
    16971697            {
    16981698                lstrcpy(temporary,resourceItem.filepath.c_str());
    16991699                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    1700                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
     1700                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){
    17011701                    sprintf(buffer+i2,"icon,%s\r\n",resourceItem.filepath.c_str());
    17021702                    i2+=lstrlen(buffer+i2);
  • trunk/ab5.0/abdev/abdev/RadProc.cpp

    r626 r629  
    1717    while(hChild){
    1818        i=GetWndNum(hChild);
    19         if(MdiInfo[i].DocType==WNDTYPE_RAD){
    20             if(lstrcmpi(MdiInfo[i].path.c_str(),windowInfo.GetName().c_str())==0) break;
     19        if(MdiInfo[i]->DocType==WNDTYPE_RAD){
     20            if(lstrcmpi(MdiInfo[i]->path.c_str(),windowInfo.GetName().c_str())==0) break;
    2121        }
    2222        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    4646
    4747    mdic.lParam=0;
     48    mdic.style |= WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;
    4849    hChild=(HWND)SendMessage(hClient,WM_MDICREATE,0,(long)&mdic);   //ウィンドウ作成
    4950
     
    8081    //ウィンドウのID登録
    8182    HDC hdc;
    82     MdiInfo.push_back( MDIINFO() );
     83    MdiInfo.push_back( new MDIINFO() );
    8384    i = MdiInfo.size()-1;
    8485
    85     MdiInfo[i].hwnd=hChild;
    86     MdiInfo[i].DocType=WNDTYPE_RAD;
    87     MdiInfo[i].title = windowInfo.GetName();
    88     MdiInfo[i].path = windowInfo.GetName();
     86    MdiInfo[i]->hwnd=hChild;
     87    MdiInfo[i]->DocType=WNDTYPE_RAD;
     88    MdiInfo[i]->title = windowInfo.GetName();
     89    MdiInfo[i]->path = windowInfo.GetName();
    8990
    9091
     
    9394    ////////////////////////////
    9495
    95     MdiInfo[i].MdiRadInfo=(MDIRADINFO *)GlobalAlloc(GPTR,sizeof(MDIRADINFO));
    96 
    97     MdiInfo[i].MdiRadInfo->hTools=hTools;
    98     MdiInfo[i].MdiRadInfo->hProperty=hProperty;
    99     MdiInfo[i].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),hProperty,(DLGPROC)RadProperty_WindowProc);
     96    MdiInfo[i]->MdiRadInfo=(MDIRADINFO *)GlobalAlloc(GPTR,sizeof(MDIRADINFO));
     97
     98    MdiInfo[i]->MdiRadInfo->hTools=hTools;
     99    MdiInfo[i]->MdiRadInfo->hProperty=hProperty;
     100    MdiInfo[i]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),hProperty,(DLGPROC)RadProperty_WindowProc);
    100101
    101102    SCROLLINFO ScrollInfo;
     
    103104    ScrollInfo.fMask=SIF_POS;
    104105    ScrollInfo.nPos=0;
    105     SetScrollInfo(MdiInfo[i].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
    106 
    107     MdiInfo[i].MdiRadInfo->hRad=hRad;
    108 
    109     MdiInfo[i].MdiRadInfo->hSupport=hSupport;
     106    SetScrollInfo(MdiInfo[i]->MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
     107
     108    MdiInfo[i]->MdiRadInfo->hRad=hRad;
     109
     110    MdiInfo[i]->MdiRadInfo->hSupport=hSupport;
    110111
    111112    hdc=GetDC(hRad);
    112     MdiInfo[i].MdiRadInfo->hBitmap=CreateCompatibleBitmap(hdc,ScreenX*2,ScreenY*2);
    113     MdiInfo[i].MdiRadInfo->hMemDC=CreateCompatibleDC(hdc);
    114     MdiInfo[i].MdiRadInfo->hOldBitmap=
    115         (HBITMAP)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,MdiInfo[i].MdiRadInfo->hBitmap);
     113    MdiInfo[i]->MdiRadInfo->hBitmap=CreateCompatibleBitmap(hdc,ScreenX*2,ScreenY*2);
     114    MdiInfo[i]->MdiRadInfo->hMemDC=CreateCompatibleDC(hdc);
     115    MdiInfo[i]->MdiRadInfo->hOldBitmap=
     116        (HBITMAP)SelectObject(MdiInfo[i]->MdiRadInfo->hMemDC,MdiInfo[i]->MdiRadInfo->hBitmap);
    116117    ReleaseDC(hRad,hdc);
    117118
    118     for(i2=0;i2<MAX_RAD_SELITEM;i2++) MdiInfo[i].MdiRadInfo->SelectingItem[i2]=-1;
    119     MdiInfo[i].MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
     119    for(i2=0;i2<MAX_RAD_SELITEM;i2++) MdiInfo[i]->MdiRadInfo->SelectingItem[i2]=-1;
     120    MdiInfo[i]->MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
    120121
    121122    //変更情報を初期化
    122     MdiInfo[i].MdiRadInfo->undo.NowPos=0;
    123     memset(MdiInfo[i].MdiRadInfo->undo.Command,0,sizeof(int)*MAX_UNDONUM);
     123    MdiInfo[i]->MdiRadInfo->undo.NowPos=0;
     124    memset(MdiInfo[i]->MdiRadInfo->undo.Command,0,sizeof(int)*MAX_UNDONUM);
    124125
    125126    DrawRadWindow(i,&windowInfo);
     
    286287    //////////////////////////////
    287288    //プロパティウィンドウを設定
    288     DestroyWindow(MdiInfo[WndNum].MdiRadInfo->hProp_Dlg);
    289     MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_WindowProc);
     289    DestroyWindow(MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg);
     290    MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_WindowProc);
    290291
    291292    SCROLLINFO ScrollInfo;
     
    293294    ScrollInfo.fMask=SIF_POS;
    294295    ScrollInfo.nPos=0;
    295     SetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
     296    SetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
    296297
    297298    RECT rect;
    298     GetClientRect(MdiInfo[WndNum].MdiRadInfo->hProperty,&rect);
    299     SendMessage(MdiInfo[WndNum].MdiRadInfo->hProperty,WM_SIZE,0,MAKELONG(rect.right,rect.bottom));
     299    GetClientRect(MdiInfo[WndNum]->MdiRadInfo->hProperty,&rect);
     300    SendMessage(MdiInfo[WndNum]->MdiRadInfo->hProperty,WM_SIZE,0,MAKELONG(rect.right,rect.bottom));
    300301}
    301302
     
    344345        {
    345346            const ActiveBasic::PM::ChildWindowInfo *pChildInfo = pWindowInfo->childWindowInfos[i];
    346             if(i==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) continue;
     347            if(i==MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]) continue;
    347348            if(pChildInfo->Control !=
    348                 pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control) continue;
     349                pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control) continue;
    349350
    350351            if(NewRect->left<OldRect->left){
    351352                if(pChildInfo->pos.x
    352353                                            >
    353                     NewRect->left - MdiInfo[WndNum].MdiRadInfo->ClientPos.x
     354                    NewRect->left - MdiInfo[WndNum]->MdiRadInfo->ClientPos.x
    354355                    &&
    355356                    pChildInfo->pos.x-10
    356357                                            <
    357                     NewRect->left - MdiInfo[WndNum].MdiRadInfo->ClientPos.x){
     358                    NewRect->left - MdiInfo[WndNum]->MdiRadInfo->ClientPos.x){
    358359
    359360                    //左側をストップする
    360361                    x=NewRect->right-NewRect->left;
    361                     NewRect->left=pChildInfo->pos.x + MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
     362                    NewRect->left=pChildInfo->pos.x + MdiInfo[WndNum]->MdiRadInfo->ClientPos.x;
    362363                    NewRect->right=NewRect->left+x;
    363364
     
    376377                if(pChildInfo->pos.y
    377378                                            >
    378                     NewRect->top - MdiInfo[WndNum].MdiRadInfo->ClientPos.y
     379                    NewRect->top - MdiInfo[WndNum]->MdiRadInfo->ClientPos.y
    379380                    &&
    380381                    pChildInfo->pos.y-10
    381382                                            <
    382                     NewRect->top - MdiInfo[WndNum].MdiRadInfo->ClientPos.y){
     383                    NewRect->top - MdiInfo[WndNum]->MdiRadInfo->ClientPos.y){
    383384
    384385                    //左側をストップする
    385386                    y=NewRect->bottom-NewRect->top;
    386                     NewRect->top=pChildInfo->pos.y + MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     387                    NewRect->top=pChildInfo->pos.y + MdiInfo[WndNum]->MdiRadInfo->ClientPos.y;
    387388                    NewRect->bottom=NewRect->top+y;
    388389
     
    409410    if(swLineStop&&sw==0){
    410411        BitBlt(hdc,0,0,ScreenX*2,ScreenY*2,
    411             MdiInfo[WndNum].MdiRadInfo->hMemDC,0,0,SRCCOPY);
     412            MdiInfo[WndNum]->MdiRadInfo->hMemDC,0,0,SRCCOPY);
    412413        swLineStop=0;
    413414    }
     
    415416        BitBlt(hdc,rect.left-LEVER_THICK, rect.top-LEVER_THICK,
    416417            rect.right-rect.left+LEVER_THICK*2, rect.bottom-rect.top+LEVER_THICK*2,
    417             MdiInfo[WndNum].MdiRadInfo->hMemDC,x-LEVER_THICK,y-LEVER_THICK,SRCCOPY);
     418            MdiInfo[WndNum]->MdiRadInfo->hMemDC,x-LEVER_THICK,y-LEVER_THICK,SRCCOPY);
    418419    }
    419420
     
    440441    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    441442
    442     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]==SELECT_WINDOW){
     443    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]==SELECT_WINDOW){
    443444        //ウィンドウ軸を選択
    444445        rect->left=0;
     
    449450    else{
    450451        //子ウィンドウを選択
    451         rect->left=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]]->pos.x-LEVER_THICK;
    452         rect->top=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]]->pos.y-LEVER_THICK;
    453         rect->right=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]]->pos.x+pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]]->size.cx+LEVER_THICK;
    454         rect->bottom=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]]->pos.y+pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[num]]->size.cy+LEVER_THICK;
     452        rect->left=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]]->pos.x-LEVER_THICK;
     453        rect->top=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]]->pos.y-LEVER_THICK;
     454        rect->right=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]]->pos.x+pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]]->size.cx+LEVER_THICK;
     455        rect->bottom=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]]->pos.y+pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[num]]->size.cy+LEVER_THICK;
    455456    }
    456457}
     
    472473
    473474    i=0;
    474     while(MdiInfo[WndNum].MdiRadInfo->SelectingItem[i]!=-1||i==0){
     475    while(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i]!=-1||i==0){
    475476        GetSelectingRect(WndNum,WndInfoNum,i,&tempRect);
    476477        RectNaturalFormat(&tempRect,&rect);
     
    535536    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    536537
    537     DestroyWindow(MdiInfo[WndNum].MdiRadInfo->hProp_Dlg);
    538     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
    539         MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_WindowProc);
     538    DestroyWindow(MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg);
     539    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
     540        MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_WindowProc);
    540541
    541542        ScrollInfo.cbSize=sizeof(SCROLLINFO);
    542543        ScrollInfo.fMask=SIF_POS;
    543544        ScrollInfo.nPos=0;
    544         SetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
    545 
    546         GetClientRect(MdiInfo[WndNum].MdiRadInfo->hProperty,&rect);
    547         SendMessage(MdiInfo[WndNum].MdiRadInfo->hProperty,WM_SIZE,0,MAKELONG(rect.right,rect.bottom));
     545        SetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
     546
     547        GetClientRect(MdiInfo[WndNum]->MdiRadInfo->hProperty,&rect);
     548        SendMessage(MdiInfo[WndNum]->MdiRadInfo->hProperty,WM_SIZE,0,MAKELONG(rect.right,rect.bottom));
    548549    }
    549550    else{
    550         if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_BUTTON)
    551             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_BUTTON),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ButtonProc);
    552         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_CHECKBOX)
    553             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_CHECKBOX),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_CheckBoxProc);
    554         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_COMBOBOX)
    555             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_COMBOBOX),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ComboBoxProc);
    556         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_EDIT)
    557             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_EDIT),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_EditProc);
    558         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_GROUPBOX)
    559             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_GROUPBOX),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_GroupBoxProc);
    560         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_HSCROLLBAR)
    561             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_SCROLLBAR),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ScrollBarProc);
    562         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_IMAGEBOX)
    563             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_IMAGEBOX),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ImageBoxProc);
    564         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_LISTBOX)
    565             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_LISTBOX),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ListBoxProc);
    566         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_LISTVIEW)
    567             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_LISTVIEW),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ListViewProc);
    568         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_PROGRESSBAR)
    569             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_PROGRESSBAR),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ProgressBarProc);
    570         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_RADIOBUTTON)
    571             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_RADIOBUTTON),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_RadioButtonProc);
    572         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_STATIC)
    573             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_STATIC),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_StaticProc);
    574         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_TRACKBAR)
    575             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_TRACKBAR),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_TrackBarProc);
    576         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_TREEVIEW)
    577             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_TREEVIEW),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_TreeViewProc);
    578         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_UPDOWN)
    579             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_UPDOWN),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_UpDownProc);
    580         else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_VSCROLLBAR)
    581             MdiInfo[WndNum].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_SCROLLBAR),MdiInfo[WndNum].MdiRadInfo->hProperty,(DLGPROC)RadProperty_ScrollBarProc);
     551        if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_BUTTON)
     552            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_BUTTON),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ButtonProc);
     553        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_CHECKBOX)
     554            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_CHECKBOX),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_CheckBoxProc);
     555        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_COMBOBOX)
     556            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_COMBOBOX),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ComboBoxProc);
     557        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_EDIT)
     558            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_EDIT),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_EditProc);
     559        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_GROUPBOX)
     560            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_GROUPBOX),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_GroupBoxProc);
     561        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_HSCROLLBAR)
     562            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_SCROLLBAR),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ScrollBarProc);
     563        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_IMAGEBOX)
     564            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_IMAGEBOX),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ImageBoxProc);
     565        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_LISTBOX)
     566            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_LISTBOX),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ListBoxProc);
     567        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_LISTVIEW)
     568            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_LISTVIEW),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ListViewProc);
     569        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_PROGRESSBAR)
     570            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_PROGRESSBAR),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ProgressBarProc);
     571        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_RADIOBUTTON)
     572            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_RADIOBUTTON),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_RadioButtonProc);
     573        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_STATIC)
     574            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_STATIC),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_StaticProc);
     575        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_TRACKBAR)
     576            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_TRACKBAR),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_TrackBarProc);
     577        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_TREEVIEW)
     578            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_TREEVIEW),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_TreeViewProc);
     579        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_UPDOWN)
     580            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_UPDOWN),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_UpDownProc);
     581        else if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_VSCROLLBAR)
     582            MdiInfo[WndNum]->MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_SCROLLBAR),MdiInfo[WndNum]->MdiRadInfo->hProperty,(DLGPROC)RadProperty_ScrollBarProc);
    582583
    583584        ScrollInfo.cbSize=sizeof(SCROLLINFO);
    584585        ScrollInfo.fMask=SIF_POS;
    585586        ScrollInfo.nPos=0;
    586         SetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
    587 
    588         GetClientRect(MdiInfo[WndNum].MdiRadInfo->hProperty,&rect);
    589         SendMessage(MdiInfo[WndNum].MdiRadInfo->hProperty,WM_SIZE,0,MAKELONG(rect.right,rect.bottom));
     587        SetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
     588
     589        GetClientRect(MdiInfo[WndNum]->MdiRadInfo->hProperty,&rect);
     590        SendMessage(MdiInfo[WndNum]->MdiRadInfo->hProperty,WM_SIZE,0,MAKELONG(rect.right,rect.bottom));
    590591    }
    591592}
     
    599600            (pWindowInfo->childWindowInfos[i]->GetStyle()&0x000F)!=CBS_SIMPLE){
    600601            //コンボ ボックスの場合は表示部分をターゲットに選択する(高さ20pixel)
    601             if(x>=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x&&
    602                 x<=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx&&
    603                 y>=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y&&
    604                 y<=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+20){
     602            if(x>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x&&
     603                x<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx&&
     604                y>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y&&
     605                y<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+20){
    605606                break;
    606607            }
     
    609610            //グループ ボックスの場合は中央をあける
    610611            if((
    611                 x>=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x&&
    612                 x<=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx&&
    613                 y>=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y&&
    614                 y<=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy
     612                x>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x&&
     613                x<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx&&
     614                y>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y&&
     615                y<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy
    615616                )&&
    616617                (!(
    617                 x>=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+LEVER_THICK*2&&
    618                 x<=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx-LEVER_THICK*2&&
    619                 y>=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+LEVER_THICK*3&&
    620                 y<=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy-LEVER_THICK*2
     618                x>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+LEVER_THICK*2&&
     619                x<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx-LEVER_THICK*2&&
     620                y>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+LEVER_THICK*3&&
     621                y<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy-LEVER_THICK*2
    621622                ))
    622623                ){
     
    624625            }
    625626        }
    626         else if(x>=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x&&
    627             x<=MdiInfo[WndNum].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx&&
    628             y>=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y&&
    629             y<=MdiInfo[WndNum].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy){
     627        else if(x>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x&&
     628            x<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx&&
     629            y>=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y&&
     630            y<=MdiInfo[WndNum]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy){
    630631            break;
    631632        }
     
    637638    int i;
    638639
    639     for(i=1;i<MAX_RAD_SELITEM;i++) MdiInfo[WndNum].MdiRadInfo->SelectingItem[i]=-1;
     640    for(i=1;i<MAX_RAD_SELITEM;i++) MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i]=-1;
    640641    i=GetItemNumOnMouse(WndNum,WndInfoNum,x,y);
    641642
    642643    if(i==-1){
    643         if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW){
    644             MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]=SELECT_WINDOW;
     644        if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW){
     645            MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]=SELECT_WINDOW;
    645646            ChangePropertyWindow(WndNum,WndInfoNum);
    646647        }
    647648    }
    648649    else{
    649         MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]=i;
     650        MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]=i;
    650651        ChangePropertyWindow(WndNum,WndInfoNum);
    651652    }
     
    662663    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    663664
    664     for(i=1;i<MAX_RAD_SELITEM;i++) MdiInfo[WndNum].MdiRadInfo->SelectingItem[i]=-1;
     665    for(i=1;i<MAX_RAD_SELITEM;i++) MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i]=-1;
    665666    RectNaturalFormat(pRect,&rect);
    666     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW) sw=0;
     667    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW) sw=0;
    667668    else sw=1;
    668669    for(i=pWindowInfo->childWindowInfos.size()-1,i2=0;i>=0;i--){
    669         if(rect.left <= pWindowInfo->childWindowInfos[i]->pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x&&
    670             rect.top <= pWindowInfo->childWindowInfos[i]->pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y&&
    671             rect.right >= pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx+MdiInfo[WndNum].MdiRadInfo->ClientPos.x&&
    672             rect.bottom >= pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy+MdiInfo[WndNum].MdiRadInfo->ClientPos.y){
    673             MdiInfo[WndNum].MdiRadInfo->SelectingItem[i2]=i;
     670        if(rect.left <= pWindowInfo->childWindowInfos[i]->pos.x+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x&&
     671            rect.top <= pWindowInfo->childWindowInfos[i]->pos.y+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y&&
     672            rect.right >= pWindowInfo->childWindowInfos[i]->pos.x+pWindowInfo->childWindowInfos[i]->size.cx+MdiInfo[WndNum]->MdiRadInfo->ClientPos.x&&
     673            rect.bottom >= pWindowInfo->childWindowInfos[i]->pos.y+pWindowInfo->childWindowInfos[i]->size.cy+MdiInfo[WndNum]->MdiRadInfo->ClientPos.y){
     674            MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i2]=i;
    674675            i2++;
    675676        }
    676677    }
    677     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW||
    678         (MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW&&sw)){
     678    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW||
     679        (MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW&&sw)){
    679680        ChangePropertyWindow(WndNum,WndInfoNum);
    680681    }
     
    686687    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    687688
    688     if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[1]!=-1){
     689    if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[1]!=-1){
    689690        i=0;
    690         while(MdiInfo[WndNum].MdiRadInfo->SelectingItem[i]!=-1||i==0){
     691        while(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i]!=-1||i==0){
    691692            GetSelectingRect(WndNum,WndInfoNum,i,&rect);
    692693
    693694            if(x>=rect.left+LEVER_THICK&&x<=rect.right-LEVER_THICK&&
    694695                y>=rect.top+LEVER_THICK&&y<=rect.bottom-LEVER_THICK){
    695                     if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[i]]->Control==CT_GROUPBOX){
     696                    if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i]]->Control==CT_GROUPBOX){
    696697                    //グループボックスの場合は中央をあける
    697698                    if(!(x>=rect.left+LEVER_THICK*2&&x<=rect.right-LEVER_THICK*2&&
     
    708709        GetSelectingRect(WndNum,WndInfoNum,0,&rect);
    709710
    710         if(MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW){
     711        if(MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW){
    711712            if(x>=rect.left+LEVER_THICK&&x<=rect.right-LEVER_THICK&&
    712713                y>=rect.top+LEVER_THICK&&y<=rect.bottom-LEVER_THICK){
    713                 if(pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->Control==CT_GROUPBOX){
     714                if(pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->Control==CT_GROUPBOX){
    714715                    //グループ ボックスの場合は中央をあける
    715716                    if(!(x>=rect.left+LEVER_THICK*3&&x<=rect.right-LEVER_THICK*3&&
     
    744745    SIZE NeedSize;
    745746
    746     ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
     747    ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum]->path);
    747748
    748749    //必要な幅、高さを共に100ピクセル余裕を持たせる
     
    754755
    755756    //垂直スクロールバーの設定
    756     GetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hRad,SB_VERT,&ScrollInfo);
     757    GetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hRad,SB_VERT,&ScrollInfo);
    757758    ScrollInfo.nMin=0;
    758759    if(height>NeedSize.cy) ScrollInfo.nMax=0;
     
    761762        ScrollInfo.nPage=height;
    762763    }
    763     SetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hRad,SB_VERT,&ScrollInfo,1);
     764    SetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hRad,SB_VERT,&ScrollInfo,1);
    764765
    765766    //水平スクロールバーの設定
    766     GetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hRad,SB_VERT,&ScrollInfo);
     767    GetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hRad,SB_VERT,&ScrollInfo);
    767768    ScrollInfo.nMin=0;
    768769    if(weight>NeedSize.cx) ScrollInfo.nMax=0;
     
    771772        ScrollInfo.nPage=weight;
    772773    }
    773     SetScrollInfo(MdiInfo[WndNum].MdiRadInfo->hRad,SB_HORZ,&ScrollInfo,1);
     774    SetScrollInfo(MdiInfo[WndNum]->MdiRadInfo->hRad,SB_HORZ,&ScrollInfo,1);
    774775}
    775776LRESULT CALLBACK RadWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
     
    797798
    798799                i=GetWndNum(GetParent(hwnd));
    799                 i2 = GetWndInfoNum(MdiInfo[i].path);
    800                 ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[i].path);
    801 
    802                 if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
     800                i2 = GetWndInfoNum(MdiInfo[i]->path);
     801                ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[i]->path);
     802
     803                if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
    803804                    if(((wParam&MK_CONTROL)||(wParam&MK_SHIFT))&&
    804                         MdiInfo[i].MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW){
     805                        MdiInfo[i]->MdiRadInfo->SelectingItem[0]!=SELECT_WINDOW){
    805806
    806807                        //Shiftキー、Ctrlキーによる複数選択
    807808                        for(i3=0;;i3++){
    808                             if(MdiInfo[i].MdiRadInfo->SelectingItem[i3]==-1){
    809                                 MdiInfo[i].MdiRadInfo->SelectingItem[i3]=GetItemNumOnMouse(i,i2,mouse.x,mouse.y);
     809                            if(MdiInfo[i]->MdiRadInfo->SelectingItem[i3]==-1){
     810                                MdiInfo[i]->MdiRadInfo->SelectingItem[i3]=GetItemNumOnMouse(i,i2,mouse.x,mouse.y);
    810811                                InvalidateRect(hwnd,NULL,0);
    811812
     
    826827                            //アイテム選択中。サイズ、位置変更開始
    827828
    828                             if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
     829                            if(MdiInfo[i]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
    829830                                RadInfo.DraggingRect[0].left=LEVER_THICK;
    830831                                RadInfo.DraggingRect[0].top=LEVER_THICK;
     
    835836                            else{
    836837                                i3=0;
    837                                 while(MdiInfo[i].MdiRadInfo->SelectingItem[i3]!=-1){
    838                                     RadInfo.DraggingRect[i3].left=MdiInfo[i].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos.x;
    839                                     RadInfo.DraggingRect[i3].top=MdiInfo[i].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos.y;
    840                                     RadInfo.DraggingRect[i3].right=MdiInfo[i].MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos.x+pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->size.cx;
    841                                     RadInfo.DraggingRect[i3].bottom=MdiInfo[i].MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos.y+pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->size.cy;
     838                                while(MdiInfo[i]->MdiRadInfo->SelectingItem[i3]!=-1){
     839                                    RadInfo.DraggingRect[i3].left=MdiInfo[i]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos.x;
     840                                    RadInfo.DraggingRect[i3].top=MdiInfo[i]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos.y;
     841                                    RadInfo.DraggingRect[i3].right=MdiInfo[i]->MdiRadInfo->ClientPos.x+pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos.x+pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->size.cx;
     842                                    RadInfo.DraggingRect[i3].bottom=MdiInfo[i]->MdiRadInfo->ClientPos.y+pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos.y+pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->size.cy;
    842843                                    RadInfo.DragStartRect[i3]=RadInfo.DraggingRect[i3];
    843844                                    i3++;
     
    877878                hParent=GetParent(hwnd);
    878879                i=GetWndNum(hParent);
    879                 i2 = GetWndInfoNum(MdiInfo[i].path);
    880                 ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[i].path);
    881 
    882                 if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
     880                i2 = GetWndInfoNum(MdiInfo[i]->path);
     881                ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[i]->path);
     882
     883                if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_MOUSE){
    883884                    if(RadInfo.NowDragging){
    884885                        if(RadInfo.DragStartPos.x==mouse.x&&RadInfo.DragStartPos.y==mouse.y){
     
    889890                        }
    890891
    891                         if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
     892                        if(MdiInfo[i]->MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
    892893                            if(RadInfo.NowDragging==SELECTING_FRAME){
    893894                                SetItemNumOnFrame(i,i2,&RadInfo.DraggingRect[0]);
     
    897898                                //ウィンドウ枠の調整完了
    898899                                PointAndSize.size=pWindowInfo->size;
    899                                 Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&PointAndSize);
     900                                Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i]->MdiRadInfo->SelectingItem[0],(DWORD)&PointAndSize);
    900901                                pWindowInfo->size.cx=RadInfo.DraggingRect[0].right-LEVER_THICK;
    901902                                pWindowInfo->size.cy=RadInfo.DraggingRect[0].bottom-LEVER_THICK;
     
    909910                        else{
    910911                            i3=0;
    911                             while(MdiInfo[i].MdiRadInfo->SelectingItem[i3]!=-1){
     912                            while(MdiInfo[i]->MdiRadInfo->SelectingItem[i3]!=-1){
    912913                                //アイテム枠の調整完了
    913                                 PointAndSize.pos=pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos;
    914                                 PointAndSize.size=pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->size;
    915                                 Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i].MdiRadInfo->SelectingItem[i3],(DWORD)&PointAndSize);
    916                                 pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos.x=RadInfo.DraggingRect[i3].left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    917                                 pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->pos.y=RadInfo.DraggingRect[i3].top-MdiInfo[i].MdiRadInfo->ClientPos.y;
    918                                 pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->size.cx=RadInfo.DraggingRect[i3].right-RadInfo.DraggingRect[i3].left;
    919                                 pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[i3]]->size.cy=RadInfo.DraggingRect[i3].bottom-RadInfo.DraggingRect[i3].top;
     914                                PointAndSize.pos=pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos;
     915                                PointAndSize.size=pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->size;
     916                                Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i]->MdiRadInfo->SelectingItem[i3],(DWORD)&PointAndSize);
     917                                pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos.x=RadInfo.DraggingRect[i3].left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     918                                pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->pos.y=RadInfo.DraggingRect[i3].top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
     919                                pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->size.cx=RadInfo.DraggingRect[i3].right-RadInfo.DraggingRect[i3].left;
     920                                pWindowInfo->childWindowInfos[MdiInfo[i]->MdiRadInfo->SelectingItem[i3]]->size.cy=RadInfo.DraggingRect[i3].bottom-RadInfo.DraggingRect[i3].top;
    920921                                DrawRadWindow(i,pWindowInfo);
    921922                                i3++;
     
    930931                }
    931932                else if(RadInfo.NowDragging==ITEM_MAKING){
    932                     if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_BUTTON){
     933                    if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_BUTTON){
    933934                        //ボタン コントロール作成
    934935                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    943944                        }
    944945                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    945                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    946                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     946                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     947                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    947948                        size.cx=rect.right-rect.left;
    948949                        size.cy=rect.bottom-rect.top;
    949                         MdiInfo[i].MdiRadInfo->SelectingItem[0] = InsertDlgItem(
     950                        MdiInfo[i]->MdiRadInfo->SelectingItem[0] = InsertDlgItem(
    950951                            i,
    951952                            i2,
     
    961962                        );
    962963                    }
    963                     if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_CHECKBOX){
     964                    if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_CHECKBOX){
    964965                        //チェック ボックス作成
    965966                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    974975                        }
    975976                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    976                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    977                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     977                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     978                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    978979                        size.cx=rect.right-rect.left;
    979980                        size.cy=rect.bottom-rect.top;
    980                         MdiInfo[i].MdiRadInfo->SelectingItem[0]=InsertDlgItem(
     981                        MdiInfo[i]->MdiRadInfo->SelectingItem[0]=InsertDlgItem(
    981982                            i,
    982983                            i2,
     
    994995                        );
    995996                    }
    996                     if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_COMBOBOX){
     997                    if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_COMBOBOX){
    997998                        //コンボ ボックス作成
    998999                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    10071008                        }
    10081009                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    1009                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    1010                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     1010                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     1011                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    10111012                        size.cx=rect.right-rect.left;
    10121013                        size.cy=rect.bottom-rect.top;
    1013                         MdiInfo[i].MdiRadInfo->SelectingItem[0] = InsertDlgItem(
     1014                        MdiInfo[i]->MdiRadInfo->SelectingItem[0] = InsertDlgItem(
    10141015                            i,
    10151016                            i2,
     
    10271028                        );
    10281029                    }
    1029                     else if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_EDIT){
     1030                    else if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_EDIT){
    10301031                        //エディット コントロール作成
    10311032                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    10401041                        }
    10411042                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    1042                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    1043                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     1043                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     1044                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    10441045                        size.cx=rect.right-rect.left;
    10451046                        size.cy=rect.bottom-rect.top;
    1046                         MdiInfo[i].MdiRadInfo->SelectingItem[0] = InsertDlgItem(
     1047                        MdiInfo[i]->MdiRadInfo->SelectingItem[0] = InsertDlgItem(
    10471048                            i,
    10481049                            i2,
     
    10591060                        );
    10601061                    }
    1061                     else if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_GROUPBOX){
     1062                    else if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_GROUPBOX){
    10621063                        //グループ ボックス作成
    10631064                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    10721073                        }
    10731074                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    1074                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    1075                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     1075                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     1076                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    10761077                        size.cx=rect.right-rect.left;
    10771078                        size.cy=rect.bottom-rect.top;
    1078                         MdiInfo[i].MdiRadInfo->SelectingItem[0] = InsertDlgItem(
     1079                        MdiInfo[i]->MdiRadInfo->SelectingItem[0] = InsertDlgItem(
    10791080                            i,
    10801081                            i2,
     
    10921093                        );
    10931094                    }
    1094                     else if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_HSCROLLBAR){
     1095                    else if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_HSCROLLBAR){
    10951096                        //水平スクロールバー作成
    10961097                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    11051106                        }
    11061107                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    1107                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    1108                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     1108                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     1109                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    11091110                        size.cx=rect.right-rect.left;
    11101111                        size.cy=rect.bottom-rect.top;
    1111                         MdiInfo[i].MdiRadInfo->SelectingItem[0]=InsertDlgItem(
     1112                        MdiInfo[i]->MdiRadInfo->SelectingItem[0]=InsertDlgItem(
    11121113                            i,
    11131114                            i2,
     
    11251126                        );
    11261127                    }
    1127                     else if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_IMAGEBOX){
     1128                    else if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_IMAGEBOX){
    11281129                        //イメージ ボックス作成
    11291130                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.DraggingRect[0].top==mouse.y){
     
    11381139                        }
    11391140                        RectNaturalFormat(&RadInfo.DraggingRect[0],&rect);
    1140                         pos.x=rect.left-MdiInfo[i].MdiRadInfo->ClientPos.x;
    1141                         pos.y=rect.top-MdiInfo[i].MdiRadInfo->ClientPos.y;
     1141                        pos.x=rect.left-MdiInfo[i]->MdiRadInfo->ClientPos.x;
     1142                        pos.y=rect.top-MdiInfo[i]->MdiRadInfo->ClientPos.y;
    11421143                        size.cx=rect.right-rect.left;
    11431144                        size.cy=rect.bottom-rect.top;
    1144                         MdiInfo[i].MdiRadInfo->SelectingItem[0] = InsertDlgItem(
     1145                        MdiInfo[i]->MdiRadInfo->SelectingItem[0] = InsertDlgItem(
    11451146                            i,
    11461147                            i2,
     
    11561157                        );
    11571158                    }
    1158                     else if(MdiInfo[i].MdiRadInfo->ButtonSelect==IDC_TOOL_LISTBOX){
     1159                    else if(MdiInfo[i]->MdiRadInfo->ButtonSelect==IDC_TOOL_LISTBOX){
    11591160                        //リスト ボックス作成
    11601161                        if(RadInfo.DraggingRect[0].left==mouse.x&&RadInfo.Drag