Changeset 497 in dev for trunk/ab5.0/abdev/abdev/abdev.cpp


Ignore:
Timestamp:
Apr 19, 2008, 7:08:37 PM (16 years ago)
Author:
dai_9181
Message:

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

File:
1 edited

Legend:

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

    r496 r497  
    13741374        case WM_COMMAND:
    13751375            switch(LOWORD(wParam)){
    1376                 case IDM_SAVE:
    1377                     SaveDocument(GetWindow(hClient,GW_CHILD),NULL);
    1378                     return 0;
    1379                 case IDM_NEWSAVE:
    1380                     //"保存先のファイルを指定してください"
    1381                     if(!GetFilePathDialog(hwnd,str,DefFileFilter,STRING_FILESAVETITLE_DEFAULT,FALSE)) return 0;
    1382 
    1383                     SaveDocument(GetWindow(hClient,GW_CHILD),str);
    1384                     return 0;
    1385                 case IDM_CODE_SAVE:
    1386                     //文字コードを指定して保存
    1387                     DialogBox(hResInst,MAKEINTRESOURCE(IDD_CODE_SAVE),hOwner,(DLGPROC)nkfDlgCodeSave);
    1388                     return 0;
    1389                 case IDM_ALLSAVE:
    1390                     for(i=0;i<MAX_WNDNUM;i++){
    1391                         if(MdiInfo[i].hwnd) SaveDocument(MdiInfo[i].hwnd,NULL);
    1392                     }
    1393                     if(ProjectInfo.name[0]) SaveProject();
    1394                     return 0;
    1395 
    1396                 case IDM_PAGESET:
    1397                     //ページ設定
    1398                     obj_Page.SetupDlg();
    1399                     return 0;
    1400 
    1401                 case IDM_PREVIEW:
    1402                     //プレビュー(Pro版のみ)
    1403                     Preview();
    1404                     return 0;
    1405 
    1406                 case IDM_PRINTOUT:
    1407                     //印刷
    1408                     Printout();
    1409                     return 0;
    1410 
    1411                 case IDM_EXIT:
    1412                     SendMessage(hwnd,WM_CLOSE,0,0);
    1413                     return 0;
    1414                 case IDM_UNDO:
    1415                 case (WORD)IDM_ACCEL_UNDO:
    1416                     hChild=GetWindow(hClient,GW_CHILD);
    1417                     if(!hChild) return 0;
    1418                     WndNum=GetWndNum(hChild);
    1419                     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))
    1420                         TextEdit_UndoCommand(WndNum);
    1421                     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
    1422                         Rad_UndoCommand(WndNum);
    1423                     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)
    1424                         IconEdit_UndoCommand(WndNum);
    1425                     return 0;
    1426                 case IDM_REDO:
    1427                 case (WORD)IDM_ACCEL_REDO:
    1428                     hChild=GetWindow(hClient,GW_CHILD);
    1429                     if(!hChild) return 0;
    1430                     WndNum=GetWndNum(hChild);
    1431                     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))
    1432                         TextEdit_RedoCommand(WndNum);
    1433                     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
    1434                         Rad_RedoCommand(WndNum);
    1435                     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)
    1436                         IconEdit_RedoCommand(WndNum);
    1437                     return 0;
    1438                 case IDM_CUT:
    1439                     hChild=GetWindow(hClient,GW_CHILD);
    1440                     WndNum=GetWndNum(hChild);
    1441                     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    1442                         hEdit=GetWindow(hChild,GW_CHILD);
    1443 
    1444                         TextEdit_GetSel(WndNum,&CharRange);
    1445 
    1446                         hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);
    1447                         pTemp=(char *)GlobalLock(hGlobal);
    1448                         memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
    1449                         pTemp[CharRange.cpMax-CharRange.cpMin]=0;
    1450                         GlobalUnlock(hGlobal);
    1451 
    1452                         //クリップボードに保存
    1453                         OpenClipboard(hwnd);
    1454                         EmptyClipboard();
    1455                         SetClipboardData(CF_TEXT,hGlobal);
    1456                         CloseClipboard();
    1457 
    1458                         //選択文字列を消去
    1459                         SendMessage(hEdit,WM_KEYDOWN,VK_DELETE,0);
    1460                     }
    1461                     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    1462                         i2=GetWndInfoNum(MdiInfo[WndNum].path);
    1463 
    1464                         //クリップボードに格納するためのデータを用意する
    1465                         ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.x-=17;
    1466                         ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.y-=10;
    1467                         hGlobal=Rad_GetChildInfoClipboardData(WndNum,i2);
    1468                         ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.x+=17;
    1469                         ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.y+=10;
    1470 
    1471                         OpenClipboard(hwnd);
    1472                         EmptyClipboard();
    1473                         SetClipboardData(dwRadClipboardID,hGlobal);
    1474                         CloseClipboard();
    1475 
    1476                         SendMessage(MdiInfo[WndNum].MdiRadInfo->hRad,WM_COMMAND,IDM_RAD_ITEM_DELETE,0);
    1477                     }
    1478                     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
    1479                         //クリップボードに格納するためのデータを用意する
    1480                         hGlobal=IconEdit_GetChildInfoClipboardData(WndNum);
    1481                         if(hGlobal==0) return 0;
    1482 
    1483                         OpenClipboard(hwnd);
    1484                         EmptyClipboard();
    1485                         SetClipboardData(CF_BITMAP,hGlobal);
    1486                         CloseClipboard();
    1487 
    1488                         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    1489                         MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
    1490 
    1491                         IconEdit_EraseRect(WndNum,&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);
    1492                     }
    1493                     return 0;
    1494                 case IDM_COPY:
    1495                     hChild=GetWindow(hClient,GW_CHILD);
    1496                     WndNum=GetWndNum(hChild);
    1497                     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    1498                         hEdit=GetWindow(hChild,GW_CHILD);
    1499 
    1500                         TextEdit_GetSel(WndNum,&CharRange);
    1501 
    1502                         hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);
    1503                         pTemp=(char *)GlobalLock(hGlobal);
    1504                         memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
    1505                         pTemp[CharRange.cpMax-CharRange.cpMin]=0;
    1506                         GlobalUnlock(hGlobal);
    1507 
    1508                         //クリップボードに保存
    1509                         OpenClipboard(hwnd);
    1510                         EmptyClipboard();
    1511                         SetClipboardData(CF_TEXT,hGlobal);
    1512                         CloseClipboard();
    1513                     }
    1514                     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    1515                         i2=GetWndInfoNum(MdiInfo[WndNum].path);
    1516 
    1517                         //クリップボードに格納するためのデータを用意する
    1518                         hGlobal=Rad_GetChildInfoClipboardData(WndNum,i2);
    1519 
    1520                         OpenClipboard(hwnd);
    1521                         EmptyClipboard();
    1522                         SetClipboardData(dwRadClipboardID,hGlobal);
    1523                         CloseClipboard();
    1524                     }
    1525                     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
    1526                         //クリップボードに格納するためのデータを用意する
    1527                         hGlobal=IconEdit_GetChildInfoClipboardData(WndNum);
    1528 
    1529                         OpenClipboard(hwnd);
    1530                         EmptyClipboard();
    1531                         SetClipboardData(CF_BITMAP,hGlobal);
    1532                         CloseClipboard();
    1533                     }
    1534                     return 0;
    1535                 case IDM_PASTE:
    1536                     hChild=GetWindow(hClient,GW_CHILD);
    1537                     WndNum=GetWndNum(hChild);
    1538                     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    1539                         hEdit=GetWindow(hChild,GW_CHILD);
    1540 
    1541                         //クリップボードを開く
    1542                         OpenClipboard(hwnd);
    1543                         hGlobal=GetClipboardData(CF_TEXT);
    1544                         if(!hGlobal){
    1545                             CloseClipboard();
    1546                             return 0;
    1547                         }
    1548 
    1549 
    1550                         if(pobj_nv->bPasteIndent){
    1551                             //インデント整形
    1552                             pTemp=CodeFormatter((char *)GlobalLock(hGlobal));
    1553                             GlobalUnlock(hGlobal);
    1554                         }
    1555                         else pTemp=(char *)GlobalLock(hGlobal);
    1556 
    1557 
    1558                         //テキストエディタの文字列をリプレイス
    1559                         TextEdit_ReplaceUpdateUndoData(WndNum,
    1560                             pTemp,
    1561                             1,
    1562                             1);
    1563 
    1564                         if(pobj_nv->bPasteIndent)
    1565                             HeapDefaultFree(pTemp);
    1566                         else
    1567                             GlobalUnlock(hGlobal);
    1568 
    1569                         //クリップボードを閉じる
    1570                         CloseClipboard();
    1571 
    1572 
    1573                         //キャレット位置までスクロールする
    1574                         TextEdit_ScrollCaret(WndNum,0);
    1575                         ResetCaretPos(WndNum);
    1576                     }
    1577                     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    1578                         OpenClipboard(hwnd);
    1579                         hGlobal=GetClipboardData(dwRadClipboardID);
    1580                         if(!hGlobal){
    1581                             CloseClipboard();
    1582                             return 0;
    1583                         }
    1584                         Rad_PasteChildInfoClipboardData(WndNum,hGlobal);
    1585                         CloseClipboard();
    1586                     }
    1587                     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
    1588                         OpenClipboard(hwnd);
    1589                         hGlobal=GetClipboardData(CF_BITMAP);
    1590                         if(!hGlobal){
    1591                             CloseClipboard();
    1592                             return 0;
    1593                         }
    1594                         IconEdit_PasteChildInfoClipboardData(WndNum,(HBITMAP)hGlobal);
    1595                         CloseClipboard();
    1596                     }
    1597                     return 0;
    15981376                case IDM_DELETE:
    15991377                    hChild=GetWindow(hClient,GW_CHILD);
Note: See TracChangeset for help on using the changeset viewer.