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/RadProc.cpp

    r624 r625  
    88    extern HINSTANCE hInst,hResInst;
    99    extern HWND hDocCombo;
    10     extern MDIINFO MdiInfo[MAX_WNDNUM];
    1110    int i,i2;
    1211    HWND hChild;
     
    1918        i=GetWndNum(hChild);
    2019        if(MdiInfo[i].DocType==WNDTYPE_RAD){
    21             if(lstrcmpi(MdiInfo[i].path,windowInfo.GetName().c_str())==0) break;
     20            if(lstrcmpi(MdiInfo[i].path.c_str(),windowInfo.GetName().c_str())==0) break;
    2221        }
    2322        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    8180    //ウィンドウのID登録
    8281    HDC hdc;
    83     for(i=0;i<MAX_WNDNUM;i++){
    84         if(MdiInfo[i].hwnd==0){
    85             MdiInfo[i].hwnd=hChild;
    86             MdiInfo[i].DocType=WNDTYPE_RAD;
    87             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,windowInfo.GetName().size()+1);
    88             lstrcpy(MdiInfo[i].title,windowInfo.GetName().c_str());
    89             MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,windowInfo.GetName().size()+1);
    90             lstrcpy(MdiInfo[i].path,windowInfo.GetName().c_str());
    91 
    92 
    93             ////////////////////////////
    94             // MDIRADINFO構造体をセット
    95             ////////////////////////////
    96 
    97             MdiInfo[i].MdiRadInfo=(MDIRADINFO *)GlobalAlloc(GPTR,sizeof(MDIRADINFO));
    98 
    99             MdiInfo[i].MdiRadInfo->hTools=hTools;
    100             MdiInfo[i].MdiRadInfo->hProperty=hProperty;
    101             MdiInfo[i].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),hProperty,(DLGPROC)RadProperty_WindowProc);
    102 
    103             SCROLLINFO ScrollInfo;
    104             ScrollInfo.cbSize=sizeof(SCROLLINFO);
    105             ScrollInfo.fMask=SIF_POS;
    106             ScrollInfo.nPos=0;
    107             SetScrollInfo(MdiInfo[i].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
    108 
    109             MdiInfo[i].MdiRadInfo->hRad=hRad;
    110 
    111             MdiInfo[i].MdiRadInfo->hSupport=hSupport;
    112 
    113             hdc=GetDC(hRad);
    114             MdiInfo[i].MdiRadInfo->hBitmap=CreateCompatibleBitmap(hdc,ScreenX*2,ScreenY*2);
    115             MdiInfo[i].MdiRadInfo->hMemDC=CreateCompatibleDC(hdc);
    116             MdiInfo[i].MdiRadInfo->hOldBitmap=
    117                 (HBITMAP)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,MdiInfo[i].MdiRadInfo->hBitmap);
    118             ReleaseDC(hRad,hdc);
    119 
    120             for(i2=0;i2<MAX_RAD_SELITEM;i2++) MdiInfo[i].MdiRadInfo->SelectingItem[i2]=-1;
    121             MdiInfo[i].MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
    122 
    123             //変更情報を初期化
    124             MdiInfo[i].MdiRadInfo->undo.NowPos=0;
    125             memset(MdiInfo[i].MdiRadInfo->undo.Command,0,sizeof(int)*MAX_UNDONUM);
    126 
    127 
    128             DrawRadWindow(i,&windowInfo);
    129 
    130             //サポートダイアログの内容をセット
    131             SetSupportDlgData(i,windowInfo);
    132 
    133             break;
    134         }
    135     }
     82    MdiInfo.push_back( MDIINFO() );
     83    i = MdiInfo.size()-1;
     84
     85    MdiInfo[i].hwnd=hChild;
     86    MdiInfo[i].DocType=WNDTYPE_RAD;
     87    MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,windowInfo.GetName().size()+1);
     88    lstrcpy(MdiInfo[i].title,windowInfo.GetName().c_str());
     89    MdiInfo[i].path = windowInfo.GetName();
     90
     91
     92    ////////////////////////////
     93    // MDIRADINFO構造体をセット
     94    ////////////////////////////
     95
     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);
     101
     102    SCROLLINFO ScrollInfo;
     103    ScrollInfo.cbSize=sizeof(SCROLLINFO);
     104    ScrollInfo.fMask=SIF_POS;
     105    ScrollInfo.nPos=0;
     106    SetScrollInfo(MdiInfo[i].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
     107
     108    MdiInfo[i].MdiRadInfo->hRad=hRad;
     109
     110    MdiInfo[i].MdiRadInfo->hSupport=hSupport;
     111
     112    hdc=GetDC(hRad);
     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);
     117    ReleaseDC(hRad,hdc);
     118
     119    for(i2=0;i2<MAX_RAD_SELITEM;i2++) MdiInfo[i].MdiRadInfo->SelectingItem[i2]=-1;
     120    MdiInfo[i].MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
     121
     122    //変更情報を初期化
     123    MdiInfo[i].MdiRadInfo->undo.NowPos=0;
     124    memset(MdiInfo[i].MdiRadInfo->undo.Command,0,sizeof(int)*MAX_UNDONUM);
     125
     126    DrawRadWindow(i,&windowInfo);
     127
     128    //サポートダイアログの内容をセット
     129    SetSupportDlgData(i,windowInfo);
     130
    136131
    137132    ShowWindow(hSupport,SW_SHOW);
     
    160155
    161156    extern HANDLE hHeap;
    162     extern MDIINFO MdiInfo[MAX_WNDNUM];
    163157    int i,i2,NewItemNum;
    164158    char temporary[MAX_PATH];
     
    271265void DeleteDlgItem(int WndNum,int WndInfoNum,int ItemNum,BOOL bNoticeChanging){
    272266    extern HANDLE hHeap;
    273     extern MDIINFO MdiInfo[MAX_WNDNUM];
    274267
    275268    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
     
    335328}
    336329void DrawFrame(HWND hwnd,int WndNum,int WndInfoNum,RECT *NewRect,RECT *OldRect,BOOL bLA){
    337     extern MDIINFO MdiInfo[MAX_WNDNUM];
    338330    static int swLineStop;
    339331    int i,sw;
     
    446438}
    447439void GetSelectingRect(int WndNum,int WndInfoNum,int num,RECT *rect){
    448     extern MDIINFO MdiInfo[MAX_WNDNUM];
    449440
    450441    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
     
    466457}
    467458void DrawSelectingRect(HWND hwnd,int WndNum,int WndInfoNum,int ButtonSelect){
    468     extern MDIINFO MdiInfo[MAX_WNDNUM];
    469459    extern RADINFO RadInfo;
    470460    int i,i2,i3;
     
    541531}
    542532void ChangePropertyWindow(int WndNum,int WndInfoNum){
    543     extern MDIINFO MdiInfo[MAX_WNDNUM];
    544533    RECT rect;
    545534    SCROLLINFO ScrollInfo;
     
    603592}
    604593int GetItemNumOnMouse(int WndNum,int WndInfoNum,int x,int y){
    605     extern MDIINFO MdiInfo[MAX_WNDNUM];
    606594    int i;
    607595
     
    648636void SelectItemNumOnMouse(int WndNum,int WndInfoNum,int x,int y){
    649637    //マウス座標をもとにコントロールアイテムを選択
    650     extern MDIINFO MdiInfo[MAX_WNDNUM];
    651638    int i;
    652639
     
    671658}
    672659void SetItemNumOnFrame(int WndNum,int WndInfoNum,RECT *pRect){
    673     extern MDIINFO MdiInfo[MAX_WNDNUM];
    674660    int i,i2,sw;
    675661    RECT rect;
     
    696682}
    697683int GetStateOfDraggingFrame(int WndNum,int WndInfoNum,int x,int y){
    698     extern MDIINFO MdiInfo[MAX_WNDNUM];
    699684    int i;
    700685    RECT rect;
     
    757742}
    758743void ResetScrollbarOfRadEditor(int WndNum,int weight,int height){
    759     extern MDIINFO MdiInfo[MAX_WNDNUM];
    760744    SCROLLINFO ScrollInfo;
    761745    SIZE NeedSize;
     
    791775}
    792776LRESULT CALLBACK RadWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    793     extern MDIINFO MdiInfo[MAX_WNDNUM];
    794777    extern RADINFO RadInfo;
    795778    int i,i2,i3,i4;
     
    19641947}
    19651948void ResizeToRadToolWindows(int WndNum,int weight,int height){
    1966     extern MDIINFO MdiInfo[MAX_WNDNUM];
    19671949    int i,i2;
    19681950    RECT rect;
     
    20021984LRESULT CALLBACK MDIClientWindow_Rad(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    20031985    extern HWND hDocCombo;
    2004     extern MDIINFO MdiInfo[MAX_WNDNUM];
    20051986    int i,WndNum;
    20061987
Note: See TracChangeset for help on using the changeset viewer.