Ignore:
Timestamp:
May 27, 2008, 9:17:34 PM (16 years ago)
Author:
dai_9181
Message:

・WindowInfoクラスをリファクタリング
・MdiInfoを単純配列からvectorに変更した。

File:
1 edited

Legend:

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

    r620 r625  
    2929}
    3030void ResetIconType(int WndNum){
    31     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3231    int i;
    3332    HWND hCombo;
     
    127126void AddIconType(int WndNum,int IconType){
    128127    extern HANDLE hHeap;
    129     extern MDIINFO MdiInfo[MAX_WNDNUM];
    130128    int i,width,BitCount;
    131129
     
    192190}
    193191void DeleteIconType(int WndNum){
    194     extern MDIINFO MdiInfo[MAX_WNDNUM];
    195192    int i;
    196193
     
    241238    extern HANDLE hHeap;
    242239    extern HWND hDocCombo;
    243     extern MDIINFO MdiInfo[MAX_WNDNUM];
    244240    int i,i2,IconNum;
    245241    char str[MAX_PATH],str2[32],*buffer;
     
    257253            i=GetWndNum(hChild);
    258254            if(MdiInfo[i].DocType==WNDTYPE_ICONEDIT){
    259                 if(lstrcmpi(MdiInfo[i].path,filepath)==0) break;
     255                if(lstrcmpi(MdiInfo[i].path.c_str(),filepath)==0) break;
    260256            }
    261257            hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    373369
    374370    //ウィンドウのID登録
    375     for(i=0;i<MAX_WNDNUM;i++){
    376         if(MdiInfo[i].hwnd==0){
    377             MdiInfo[i].hwnd=hChild;
    378             MdiInfo[i].DocType=WNDTYPE_ICONEDIT;
    379             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(str)+1);
    380             lstrcpy(MdiInfo[i].title,str);
    381             if(filepath){
    382                 MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(filepath)+1);
    383                 lstrcpy(MdiInfo[i].path,filepath);
    384             }
    385             else MdiInfo[i].path=(char *)GlobalAlloc(GPTR,1);
    386 
    387             MdiInfo[i].MdiIconEditInfo=(MDIICONEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDIICONEDITINFO));
    388             MdiInfo[i].MdiIconEditInfo->hMain=hMain;
    389             MdiInfo[i].MdiIconEditInfo->hToolDlg=hToolDlg;
    390             MdiInfo[i].MdiIconEditInfo->hButtonsDlg=hButtonsDlg;
    391             MdiInfo[i].MdiIconEditInfo->hColorDlg=hColorDlg;
    392             hdc=GetDC(hMain);
    393             MdiInfo[i].MdiIconEditInfo->memdc=CreateCompatibleDC(hdc);
    394             MdiInfo[i].MdiIconEditInfo->hMemBmp=CreateCompatibleBitmap(hdc,600,400);
    395             SelectObject(MdiInfo[i].MdiIconEditInfo->memdc,MdiInfo[i].MdiIconEditInfo->hMemBmp);
    396             ReleaseDC(hMain,hdc);
    397 
    398             MdiInfo[i].MdiIconEditInfo->SelectLevel=0;
    399 
    400             MdiInfo[i].MdiIconEditInfo->num=IconNum;
    401             MdiInfo[i].MdiIconEditInfo->SelectIconNum=0;
    402             memcpy(MdiInfo[i].MdiIconEditInfo->pIconImage,pImageBuffer,sizeof(DWORD)*IconNum);
    403 
    404             memcpy(MdiInfo[i].MdiIconEditInfo->dwBytesInRes,dwBytesInRes,sizeof(DWORD)*IconNum);
    405 
    406             MdiInfo[i].MdiIconEditInfo->NowTool=IDC_TOOL_PEN;
    407             MdiInfo[i].MdiIconEditInfo->MainColor=RGB(0,0,0);
    408             extern COLORREF TransparentClrRef;
    409             MdiInfo[i].MdiIconEditInfo->SubColor=TransparentClrRef;
    410 
    411             for(i2=0;i2<MdiInfo[i].MdiIconEditInfo->num;i2++){
    412                 MdiInfo[i].MdiIconEditInfo->undo[i2].NowPos=0;
    413                 memset(MdiInfo[i].MdiIconEditInfo->undo[i2].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
    414             }
    415             MdiInfo[i].MdiIconEditInfo->bModify=0;
    416             break;
    417         }
    418     }
     371    MdiInfo.push_back( MDIINFO() );
     372    i = MdiInfo.size()-1;
     373    MdiInfo[i].hwnd=hChild;
     374    MdiInfo[i].DocType=WNDTYPE_ICONEDIT;
     375    MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(str)+1);
     376    lstrcpy(MdiInfo[i].title,str);
     377    if(filepath)
     378    {
     379        MdiInfo[i].path = filepath;
     380    }
     381    else
     382    {
     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;
     391    hdc=GetDC(hMain);
     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);
     395    ReleaseDC(hMain,hdc);
     396
     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);
     407    extern COLORREF TransparentClrRef;
     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;
     415
     416
    419417
    420418    //メモリへ初期描画を行う
     
    449447}
    450448void SaveIconFile(char *filepath,HWND hwnd){
    451     extern MDIINFO MdiInfo[MAX_WNDNUM];
    452449    int i,i2,WndNum;
    453450    char buffer[8192],temporary[MAX_PATH];
     
    534531LRESULT CALLBACK MDIClientWindow_IconEdit(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    535532    extern HWND hDocCombo;
    536     extern MDIINFO MdiInfo[MAX_WNDNUM];
    537533    int i,WndNum;
    538534
Note: See TracChangeset for help on using the changeset viewer.