Ignore:
Timestamp:
Apr 24, 2008, 1:33:12 PM (16 years ago)
Author:
dai_9181
Message:

いくつかのメニューをMainFrameに実装しなおした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/src/MainFrame.cpp

    r501 r503  
    349349        }
    350350    }
     351
     352    return 0;
     353}
     354
     355void MainFrame::OnDropFiles( HDROP hDropInfo )
     356{
     357    int max = DragQueryFile(hDropInfo,-1,0,0);
     358    for(int i=0;i<max;i++){
     359        char temporary[1024];
     360        DragQueryFile(hDropInfo,i,temporary,MAX_PATH);
     361        OpenFileWithExtension(temporary);
     362    }
     363    DragFinish(hDropInfo);
     364}
     365
     366::LRESULT MainFrame::OnShowSourceLine( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled )
     367{
     368    char temporary[1024];
     369
     370    //エラー部分を反転表示
     371    DWORD AccBytes;
     372    HANDLE fh;
     373    sprintf(temporary,"%spgm.tmp",pj_editor_Dir);
     374    fh=CreateFile(temporary,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     375    ReadFile(fh,temporary,MAX_PATH,&AccBytes,NULL);
     376    CloseHandle(fh);
     377    temporary[AccBytes]=0;
     378    HWND hChild=::GetWindow(hClient,GW_CHILD);
     379    int WndNum = -1;
     380    while(hChild){
     381        WndNum=GetWndNum(hChild);
     382        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     383            if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) break;
     384        }
     385        hChild=::GetNextWindow(hChild,GW_HWNDNEXT);
     386    }
     387    if(!hChild){
     388        hChild=OpenFileWithExtension(temporary);
     389        WndNum=GetWndNum(hChild);
     390    }
     391
     392    if(WndNum==-1) return 0;
     393
     394    //ウィンドウを最前面に表示
     395    ::BringWindowToTop(hChild);
     396    ::UpdateWindow(hChild);
     397
     398    char *pTemp=MdiInfo[WndNum].pMdiTextEdit->buffer;
     399
     400    //行の先頭インデックスを取得(取得する行の番号はwParamで渡される)
     401    int i,i2;
     402    for(i=0,i2=0;;i++){
     403        if(i2>=(int)wParam) break;
     404        if(pTemp[i]=='\0') break;
     405        if(pTemp[i]=='\r'&&pTemp[i+1]=='\n'){
     406            i++;
     407            i2++;
     408        }
     409    }
     410    POINT pos;
     411    pos.x=i;
     412
     413    //行の終端インデックスを取得
     414    for(;;i++){
     415        if(pTemp[i]=='\0') break;
     416        if(pTemp[i]=='\r'&&pTemp[i+1]=='\n') break;
     417    }
     418    pos.y=i;
     419
     420    //行を選択する
     421    TextEdit_SetSel(WndNum,pos.x,pos.y,TRUE);
    351422
    352423    return 0;
     
    13661437    SendMessage(MdiInfo[WndNum].hwnd,WM_CLOSE,0,0);
    13671438}
     1439
     1440void MainFrame::OnCmdColor( UINT uNotifyCode, int nID, CWindow wndCtl )
     1441{
     1442    static COLORREF colorUser=RGB(255,255,255);
     1443
     1444    switch( nID )
     1445    {
     1446    case IDM_USER_COLOR:
     1447        {
     1448            CHOOSECOLOR cc;
     1449            COLORREF CusColors[16]={
     1450                RGB(255,255,255),
     1451                RGB(0,0,0),
     1452                RGB(128,128,128),
     1453                RGB(192,192,192),
     1454                RGB(128,0,0),
     1455                RGB(255,0,0),
     1456                RGB(128,128,0),
     1457                RGB(255,255,0),
     1458                RGB(0,128,0),
     1459                RGB(0,255,0),
     1460                RGB(0,128,128),
     1461                RGB(0,255,255),
     1462                RGB(0,0,128),
     1463                RGB(0,0,255),
     1464                RGB(128,0,128),
     1465                RGB(255,0,255)};
     1466            cc.lStructSize=sizeof(CHOOSECOLOR);
     1467            cc.hwndOwner=m_hWnd;
     1468            cc.rgbResult=colorUser;
     1469            cc.lpCustColors=CusColors;
     1470            cc.Flags=CC_RGBINIT|CC_FULLOPEN;
     1471            if(!ChooseColor(&cc)){
     1472                return;
     1473            }
     1474            colorUser=cc.rgbResult;
     1475        }
     1476    case IDM_GRAY:
     1477    case IDM_WHITE:
     1478    case IDM_RED:
     1479    case IDM_GREEN:
     1480    case IDM_BLUE:
     1481    case IDM_YELLOW:
     1482        {
     1483            HWND hChild=::GetWindow(hClient,GW_CHILD);
     1484            int WndNum=GetWndNum(hChild);
     1485
     1486            TC_ITEM tcItem;
     1487            tcItem.mask=TCIF_PARAM;
     1488            if(nID==IDM_GRAY)   tcItem.lParam=TABCOLOR_GRAY;
     1489            if(nID==IDM_WHITE)  tcItem.lParam=TABCOLOR_WHITE;
     1490            if(nID==IDM_RED)        tcItem.lParam=TABCOLOR_RED;
     1491            if(nID==IDM_GREEN)  tcItem.lParam=TABCOLOR_GREEN;
     1492            if(nID==IDM_BLUE)   tcItem.lParam=TABCOLOR_BLUE;
     1493            if(nID==IDM_YELLOW) tcItem.lParam=TABCOLOR_YELLOW;
     1494            if(nID==IDM_USER_COLOR) tcItem.lParam=colorUser;
     1495            TabCtrl_SetItem(pobj_MainTab->hTab,
     1496                TabCtrl_GetCurSel(pobj_MainTab->hTab),
     1497                &tcItem);
     1498            ::InvalidateRect(pobj_MainTab->hTab,NULL,0);
     1499            break;
     1500        }
     1501    default:
     1502        throw;
     1503    }
     1504}
Note: See TracChangeset for help on using the changeset viewer.