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


Ignore:
Timestamp:
Apr 17, 2008, 1:37:40 AM (16 years ago)
Author:
dai_9181
Message:

下記メッセージをMainFrameクラスに実装しなおした
WM_TIMER
WM_DRAWCLIPBOARD
WM_MENUSELECT
WM_INITMENU
WM_MEASUREITEM
WM_DRAWITEM
WM_NOTIFY

File:
1 edited

Legend:

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

    r489 r492  
    13991399    RECT rect;
    14001400    POINT pos;
    1401     LPTOOLTIPTEXT TipText;
    1402     LPNMHDR lpnmhdr;
    1403     NMPGCALCSIZE *lpCalcSize;
    1404     NMPGSCROLL *lpScroll;
    14051401    HDROP hDrop;
    14061402    HGLOBAL hGlobal;
     
    14251421    }
    14261422
    1427     switch(message){
    1428         case WM_TIMER:
    1429             //Pro版は自動バックアップ及び復元機能を有効にする
    1430             _beginthread(backup,0,0);
    1431 
    1432 #ifndef THETEXT
    1433             if(wParam==ID_DEBUGSAFTY){
    1434                 //BasicCompiler.exeが強制終了しているかどうかを検証
    1435                 pobj_Debugger->SaftyCheck();
    1436             }
    1437 #endif
    1438 
    1439             return 0;
    1440 
    1441 
    1442         case WM_DRAWCLIPBOARD:
    1443             ResetState_EditMenu();
    1444             return 0;
    1445 
    1446         case WM_MENUSELECT:
    1447             MenuAdvice(wParam);
    1448             return 0;
    1449         case WM_INITMENU:
    1450             pobj_nv->pobj_History->ResetFileMenu(pobj_FileHistoryMenu,1);
    1451 #ifndef THETEXT
    1452             pobj_nv->pobj_ProjectHistory->ResetFileMenu(pobj_ProjectHistoryMenu,0);
    1453 #endif
    1454             return 0;
    1455         case WM_MEASUREITEM:
    1456             LPMEASUREITEMSTRUCT lpMI;
    1457             lpMI = (LPMEASUREITEMSTRUCT)lParam;
    1458             if(lpMI->CtlType==ODT_MENU){
    1459                 SIZE size;
    1460                 CMenuItemData *pobj_MenuItemData;
    1461                 pobj_MenuItemData=(CMenuItemData *)lpMI->itemData;
    1462                 if(pobj_MenuItemData->pobj_ThisMenu->hMenu==pobj_MainMenu->hMenu){
    1463                     //メインメニューの親アイテム
    1464                     pobj_MainMenu->GetItemSize(pobj_MenuItemData->item_index,&size);
    1465                     lpMI->itemWidth = size.cx;
    1466                     lpMI->itemHeight = size.cy;
    1467                 }
    1468                 else{
    1469                     //メインメニューにぶらさがるサブメニュー
    1470                     pobj_MenuItemData->pobj_ThisMenu->GetItemSize(pobj_MenuItemData->item_index,&size);
    1471                     lpMI->itemWidth = size.cx;
    1472                     lpMI->itemHeight = size.cy;
    1473                 }
    1474             }
    1475             return 0;
    1476 
    1477         case WM_DRAWITEM:
    1478             {
    1479                 DRAWITEMSTRUCT *pdis = (DRAWITEMSTRUCT *)lParam;
    1480 
    1481                 if(pdis->CtlType==ODT_MENU){
    1482                     if(!pobj_MainMenu) return 0;
    1483 
    1484                     CMenuItemData *pobj_MenuItemData;
    1485                     pobj_MenuItemData=(CMenuItemData *)pdis->itemData;
    1486                     if(pobj_MainMenu->hMenu==pobj_MenuItemData->pobj_ThisMenu->hMenu){
    1487                         //メインメニューの親アイテム
    1488                         pobj_MainMenu->OwnerDrawMenu(pdis->hDC,
    1489                             &pdis->rcItem,
    1490                             (pdis->itemState&ODS_SELECTED)!=0,
    1491                             pobj_MenuItemData->item_index);
    1492                     }
    1493                     else{
    1494                         //メインメニューにぶらさがるサブメニュー
    1495                         pobj_MainMenu->OwnerDrawSubMenu(pobj_MenuItemData->pobj_ThisMenu->hMenu,
    1496                             pdis->hDC,
    1497                             &pdis->rcItem,
    1498                             (pdis->itemState&ODS_SELECTED)!=0,
    1499                             pobj_MenuItemData->item_index);
    1500                     }
    1501                 }
    1502 
    1503                 return 0;
    1504             }
    1505 
    1506         case WM_NOTIFY:
    1507             if(!lParam) return 0;
    1508             TipText=(LPTOOLTIPTEXT)lParam;
    1509             if(TipText->hdr.code==TTN_NEEDTEXT) ShowToolTipText(TipText);
    1510             lpnmhdr=(LPNMHDR)lParam;
    1511 
    1512             extern HWND hStandardToolbarPager;
    1513             extern HWND hDebuggerToolbarPager;
    1514             if(pobj_Rebar){
    1515                 //レバーオブジェクトが存在するとき
    1516                 if(lpnmhdr->hwndFrom==pobj_Rebar->hRebar&&lpnmhdr->code==RBN_HEIGHTCHANGE){
    1517                     ResizeOwnerWnd();
    1518                     return 0;
    1519                 }
    1520             }
    1521             if(lpnmhdr->hwndFrom==hStandardToolbarPager){
    1522                 if(lpnmhdr->code==PGN_CALCSIZE){
    1523                     lpCalcSize=(LPNMPGCALCSIZE)lParam;
    1524                     if(lpCalcSize->dwFlag==PGF_CALCWIDTH)
    1525                         lpCalcSize->iWidth=BMPNUM_STANDARDTOOLBAR*23+SEPNUM_STANDARDTOOLBAR*8;
    1526                 }
    1527                 else if(lpnmhdr->code==PGN_SCROLL){
    1528                     lpScroll=(LPNMPGSCROLL)lParam;
    1529                     lpScroll->iScroll=20;
    1530                 }
    1531             }
    1532             else if(lpnmhdr->hwndFrom==hDebuggerToolbarPager){
    1533                 if(lpnmhdr->code==PGN_CALCSIZE){
    1534                     lpCalcSize=(LPNMPGCALCSIZE)lParam;
    1535                     if(lpCalcSize->dwFlag==PGF_CALCWIDTH)
    1536                         lpCalcSize->iWidth=BMPNUM_DEBUGGERTOOLBAR*23+SEPNUM_DEBUGGERTOOLBAR*8;
    1537                 }
    1538                 else if(lpnmhdr->code==PGN_SCROLL){
    1539                     lpScroll=(LPNMPGSCROLL)lParam;
    1540                     lpScroll->iScroll=20;
    1541                 }
    1542             }
    1543 
    1544             NMHDR *hdr;
    1545             hdr=(NMHDR *)lParam;
    1546             if(pobj_MainTab){
    1547                 if(hdr->hwndFrom==pobj_MainTab->hTab){
    1548                     if(hdr->code==TCN_SELCHANGE)
    1549                         pobj_MainTab->SelChangeEvent();
    1550 
    1551                     if(hdr->code==NM_RCLICK){
    1552 
    1553                         TCHITTESTINFO tcHitTest;
    1554                         GetCursorPos(&tcHitTest.pt);
    1555                         ScreenToClient(pobj_MainTab->hTab,&tcHitTest.pt);
    1556                         i=TabCtrl_HitTest(pobj_MainTab->hTab,&tcHitTest);
    1557                         if(i==-1) return 0;
    1558 
    1559                         TabCtrl_SetCurSel(pobj_MainTab->hTab,i);
    1560 
    1561                         pobj_MainTab->SelChangeEvent();
    1562 
    1563 
    1564                         /////////////////////
    1565                         // メニューを表示
    1566                         /////////////////////
    1567 
    1568                         hChild=GetWindow(hClient,GW_CHILD);
    1569                         WndNum=GetWndNum(hChild);
    1570 
    1571                         //保存コマンドの文字列をセット
    1572                         MENUITEMINFO mii;
    1573                         mii.cbSize=sizeof(MENUITEMINFO);
    1574                         mii.fMask=MIIM_TYPE;
    1575                         mii.dwTypeData=temporary;
    1576                         mii.fType=MFT_STRING;
    1577                         if(MdiInfo[WndNum].path[0]){
    1578                             _splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
    1579                             lstrcat(temporary,temp2);
    1580                             lstrcat(temporary," を保存(&S)");
    1581                         }
    1582                         else{
    1583                             lstrcpy(temporary,"保存(&S)");
    1584                         }
    1585                         SetMenuItemInfo(hTabMenu,IDM_SAVE,FALSE,&mii);
    1586 
    1587                         /*「絶対パスをコピー」「フォルダを開く」「ファイルを削除」
    1588                                                         コマンドを場合によって無効化にする */
    1589                         if(MdiInfo[WndNum].path[0]){
    1590                             EnableMenuItem(hTabMenu,IDM_PATH_COPY,MF_BYCOMMAND|MF_ENABLED);
    1591                             EnableMenuItem(hTabMenu,IDM_FOLDER_OPEN,MF_BYCOMMAND|MF_ENABLED);
    1592                             EnableMenuItem(hTabMenu,IDM_DELETE_FILE,MF_BYCOMMAND|MF_ENABLED);
    1593                         }
    1594                         else{
    1595                             EnableMenuItem(hTabMenu,IDM_PATH_COPY,MF_BYCOMMAND|MF_GRAYED);
    1596                             EnableMenuItem(hTabMenu,IDM_FOLDER_OPEN,MF_BYCOMMAND|MF_GRAYED);
    1597                             EnableMenuItem(hTabMenu,IDM_DELETE_FILE,MF_BYCOMMAND|MF_GRAYED);
    1598                         }
    1599 
    1600                         POINT MousePos;
    1601                         GetCursorPos(&MousePos);
    1602                         TrackPopupMenu(hTabMenu,TPM_LEFTALIGN|TPM_RIGHTBUTTON,MousePos.x,MousePos.y,0,hOwner,NULL);
    1603                     }
    1604                 }
    1605             }
    1606             if(pobj_SideWeb){
    1607                 if(hdr->hwndFrom==pobj_SideWeb->hTab&&hdr->code==TCN_SELCHANGE){
    1608                     pobj_SideWeb->SelChangeEvent();
    1609                 }
    1610             }
    1611 
    1612             return 0;
     1423    switch(message)
     1424    {
    16131425        case WM_COMMAND:
    16141426            switch(LOWORD(wParam)){
Note: See TracChangeset for help on using the changeset viewer.