亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? patron.cpp

?? 英文版的 想要的話可以下載了 為大家服務(wù)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

    //Remove Undo:  we don't use it.
    m_pTB->Remove(IDM_EDITUNDO);

    /*
     * Insert Print File Import in the 5th position and account
     * for it in iLast.
     */
    m_pTB->Add(utCmd, 4, IDM_FILEPRINT, m_dxB, m_dyB
        , NULL, NULL, 6, uState);

    iLast++;

    m_pTB->Add(GIZMOTYPE_SEPARATOR, iLast++, 0, 6, m_dyB
        , NULL, NULL, 0, uState);

    //Add New Page, and Delete Page
    m_pTB->Add(utCmd, iLast++, IDM_PAGENEWPAGE, m_dxB, m_dyB
        , NULL, m_hBmp, 2, uState);
    m_pTB->Add(utCmd, iLast++, IDM_PAGEDELETEPAGE, m_dxB, m_dyB
        , NULL, m_hBmp, 3, uState);

    m_pTB->Add(GIZMOTYPE_SEPARATOR, iLast++, 0, 6, m_dyB
        , NULL, NULL, 0, uState);

    //First, Prev, Next, Last pages.
    m_pTB->Add(utCmd, iLast++, IDM_PAGEFIRSTPAGE, m_dxB, m_dyB
        , NULL, m_hBmp, 4, uState);
    m_pTB->Add(utCmd, iLast++, IDM_PAGEPREVIOUSPAGE, m_dxB, m_dyB
        , NULL, m_hBmp, 5, uState);
    m_pTB->Add(utCmd, iLast++, IDM_PAGENEXTPAGE, m_dxB, m_dyB
        , NULL, m_hBmp, 6, uState);
    m_pTB->Add(utCmd, iLast++, IDM_PAGELASTPAGE, m_dxB, m_dyB
        , NULL, m_hBmp, 7, uState);

    return iLast;
    }







/*
 * CPatronFrame::UpdateMenus
 *
 * Purpose:
 *  Handles the WM_INITMENU message for the frame window.  Depending
 *  on the existence of an active window, menu items are selectively
 *  enabled and disabled.
 *
 * Parameters:
 *  hMenu           HMENU of the menu to intialize
 *  iMenu           UINT position of the menu.
 *
 * Return Value:
 *  None
 */

void CPatronFrame::UpdateMenus(HMENU hMenu, UINT iMenu)
    {
    PCPatronDoc     pDoc;
    BOOL            fOK=FALSE;
    BOOL            fCallDefault=TRUE;
    UINT            uTemp;
    UINT            uTempE;
    UINT            uTempD;

    pDoc=(PCPatronDoc)m_pCL->ActiveDocument();

    uTempE=MF_ENABLED | MF_BYCOMMAND;
    uTempD=MF_DISABLED | MF_GRAYED | MF_BYCOMMAND;
    uTemp=((NULL!=pDoc) ? uTempE : uTempD);

    if (m_phMenu[0]==hMenu)
        {
        EnableMenuItem(hMenu, IDM_FILEPRINT, uTemp);

        if (NULL!=pDoc)
            fOK=pDoc->FQueryPrinterSetup();

        EnableMenuItem(hMenu, IDM_FILEPRINTERSETUP
            , (fOK) ? uTempE : uTempD);
        }

    if (m_phMenu[1]==hMenu)
        {
        if (NULL!=pDoc)
            fOK=pDoc->FQueryPaste();

        EnableMenuItem(hMenu, IDM_EDITPASTE
            , (fOK) ? uTempE : uTempD);
        EnableMenuItem(hMenu, IDM_EDITPASTESPECIAL
            , (fOK) ? uTempE : uTempD);

        //Cut, Copy, Delete depends on there being a selection.
        if (NULL!=pDoc)
            fOK=pDoc->FQueryObjectSelected(hMenu);
        else
            fOK=FALSE;

        EnableMenuItem(hMenu, IDM_EDITCUT, (fOK) ? uTempE : uTempD);
        EnableMenuItem(hMenu, IDM_EDITCOPY
            , (fOK) ? uTempE : uTempD);
        EnableMenuItem(hMenu, IDM_EDITDELETEOBJECT
            , (fOK) ? uTempE : uTempD);

        EnableMenuItem(hMenu, IDM_EDITINSERTOBJECT, uTemp);

        if (NULL!=pDoc)
            fOK=pDoc->FQueryEnableEditLinks();
        else
            fOK=FALSE;

        EnableMenuItem(hMenu, IDM_EDITLINKS
            , (fOK) ? uTempE : uTempD);

        //We did the whole menu...
        fCallDefault=FALSE;
        }

    //Page menu
    if (m_phMenu[2]==hMenu)
        {
        EnableMenuItem(hMenu, IDM_PAGENEWPAGE,      uTemp);
        EnableMenuItem(hMenu, IDM_PAGEDELETEPAGE,   uTemp);
        EnableMenuItem(hMenu, IDM_PAGENEXTPAGE,     uTemp);
        EnableMenuItem(hMenu, IDM_PAGEPREVIOUSPAGE, uTemp);
        EnableMenuItem(hMenu, IDM_PAGEFIRSTPAGE,    uTemp);
        EnableMenuItem(hMenu, IDM_PAGELASTPAGE,     uTemp);

        //Check the Show Objects command or not.
        if (NULL!=pDoc)
            fOK=pDoc->ShowOrQueryObjectTypes(TRUE, FALSE);
        else
            fOK=FALSE;

        CheckMenuItem(hMenu, IDM_PAGESHOWOBJECTS, MF_BYCOMMAND
            | ((fOK) ? MF_CHECKED : MF_UNCHECKED));
        EnableMenuItem(hMenu, IDM_PAGESHOWOBJECTS, uTemp);
        }

    if (fCallDefault)
        CFrame::UpdateMenus(hMenu, iMenu);

    return;
    }






/*
 * CPatronFrame::UpdateToolbar
 *
 * Purpose:
 *  Enables and disables tools depending on whether we have
 *  a document or not.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPatronFrame::UpdateToolbar(void)
    {
    PCDocument  pDoc;
    BOOL        fEnable;

    //Let the default hack on its tools.
    CFrame::UpdateToolbar();

    pDoc=m_pCL->ActiveDocument();
    fEnable=(NULL!=pDoc);

    //No document, disable just about everything
    m_pTB->Enable(IDM_FILEPRINT,        fEnable);
    m_pTB->Enable(IDM_FILEPRINTERSETUP, fEnable);

    m_pTB->Enable(IDM_PAGENEWPAGE,      fEnable);
    m_pTB->Enable(IDM_PAGEDELETEPAGE,   fEnable);
    m_pTB->Enable(IDM_PAGEFIRSTPAGE,    fEnable);
    m_pTB->Enable(IDM_PAGEPREVIOUSPAGE, fEnable);
    m_pTB->Enable(IDM_PAGENEXTPAGE,     fEnable);
    m_pTB->Enable(IDM_PAGELASTPAGE,     fEnable);

    return;
    }





//CHAPTER22MOD
/*
 * CPatronFrame::MessageLoop
 *
 * Purpose:
 *  Override of standard message loop function in CLASSLIB to use
 *  in-place accelerators when necessary.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  WPARAM          Contents of msg.wParam from WM_QUIT.
 */

WPARAM CPatronFrame::MessageLoop(void)
    {
    MSG     msg;

    while (GetMessage(&msg, NULL, 0,0 ))
        {
        HACCEL      hAccel=m_hAccel;

        //Always give the object first crack at translation.
        if (NULL!=m_pIOleIPActiveObject)
            {
            HRESULT     hr;

            hAccel=m_hAccelIP;
            hr=m_pIOleIPActiveObject->TranslateAccelerator(&msg);

            //If the object translated the accelerator, we're done
            if (NOERROR==hr)
                continue;
            }

        if (!m_pCL->TranslateAccelerator(&msg))
            {
            //hAccel is either the normal ones or the in-place ones.

            if (!::TranslateAccelerator(m_hWnd, hAccel, &msg))
                {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
                }
            }
        }

    return msg.wParam;
    }
//End CHAPTER22MOD




/*
 * CPatronFrame::FMessageHook
 *
 * Purpose:
 *  Override of CFrame::FMessageHook so we can specifically trap
 *  WM_MENUSELECT messages for the Object verb menu to provide some
 *  meaningful information on the status strip.
 *
 * Parameters:
 *  <WndProc Parameters>
 *  pLRes           LRESULT * in which to store the return value
 *                  for the message.
 *
 * Return Value:
 *  BOOL            TRUE to prevent further processing,
 *                  FALSE otherwise.
 */

BOOL CPatronFrame::FMessageHook(HWND hWnd, UINT iMsg, WPARAM wParam
    , LPARAM lParam, LRESULT *pLRes)
    {
    BOOL        fRet=FALSE;
    //CHAPTER22MOD
    int         dx, dy;
    //End CHAPTER22MOD
    MENUSELECTPARAMS(wItem, wMenuFlags, hMenu);

    *pLRes=0;

    //CHAPTER22MOD
    /*
     * We use a switch now because we previously only processed
     * WM_MENUSELECT which did not use a case statement.
     */

    switch (iMsg)
        {
        case WM_SIZE:
            if (NULL!=m_pIOleIPActiveObject)
                {
                RECT        rc;

                GetClientRect(m_hWnd, &rc);
                m_pIOleIPActiveObject->ResizeBorder(&rc
                    , this, TRUE);
                }

            /*
             * If we're not showing our tools, don't let CLASSLIB
             * resize the client, instead doing it ourselves.
             */
            if (m_fOurToolsShowing)
                return FALSE;

            m_fSizing=TRUE;
            dx=LOWORD(lParam);
            dy=HIWORD(lParam);

            //Change the Toolbar and StatStrip widths to match
            m_pTB->OnSize(hWnd);
            m_pSL->OnSize(hWnd);

            //Adjust the client properly, remembering the StatStrip.
            m_pCL->OnSize(m_cxLeft, m_cyTop, dx-m_cxLeft-m_cxRight
                , dy-m_cyTop-m_cyBottom-CYSTATSTRIP);

            m_fSizing=FALSE;
            return TRUE;

        case WM_ACTIVATEAPP:
            if (NULL!=m_pIOleIPActiveObject)
                {
                m_pIOleIPActiveObject->OnFrameWindowActivate
                    ((BOOL)wParam);
                }

            return FALSE;

        case WM_SETFOCUS:
            if (NULL!=m_pIOleIPActiveObject)
                {
                HWND    hWndObj;

                m_pIOleIPActiveObject->GetWindow(&hWndObj);
                SetFocus(hWndObj);
                }

            return TRUE;

        case WM_CLOSE:
            if (NULL!=m_pDocCreated)
                {
                if (m_pDocCreated->FDirtyGet())
                    {
                    CHourglass  wait;
                    m_pDocCreated->Save(0, NULL);
                    }
                }

            return FALSE;

        case WM_MENUSELECT:
            break;      //Continue processing below.

        default:
            return FALSE;
        }
    //End CHAPTER22MOD

    //This happens when there's no menu selection.
    if (-1==wMenuFlags)
        return FALSE;

    if (MF_POPUP & wMenuFlags)
        {
        /*
         * If this is the cascade verb menu itself, display the same
         * message.  m_phMenu[1] contains the current edit menu
         * handle.
         */
        if (0!=wItem)
            {
            fRet=((HMENU)wItem==GetSubMenu(m_phMenu[1]
                , MENUPOS_OBJECT));
            }
        }
    else
        {
        /*
         * If the ID is in the verb range, use
         * IDS_ITEMMESSAGEEDITOBJECT message
         */
        fRet=(IDM_VERBMIN <= wItem && IDM_VERBMAX >= wItem);
        }

    if (fRet)
        m_pSL->MessageDisplay(IDM_EDITOBJECT);

    return fRet;
    }




//CHAPTER22MOD

/*
 * CPatronFrame::ShowUIAndTools
 *
 * Purpose:
 *  Installs or removes the in-place user interface which includes
 *  the menus and the tools.  The tools may be affected outside of
 *  the menu.
 *
 * Parameters:
 *  fShow           BOOL indicating to show (TRUE) or hide (FALSE)
 *  fMenu           BOOl indicating if the menu is also affected.
 *
 * Return Value:
 *  None
 */

void CPatronFrame::ShowUIAndTools(BOOL fShow, BOOL fMenu)
    {
    HWND    hWndTB;

    //This is the only menu case...restore our original menu
    if (fMenu && fShow)
        SetMenu(NULL, NULL, NULL);

    /*
     * If we're trying to hide our tools but the object didn't
     * want any space, then just leave our tools up and active.
     */

    hWndTB=m_pTB->Window();
    ShowWindow(hWndTB, fShow ? SW_SHOW : SW_HIDE);

    if (fShow)
        {
        InvalidateRect(hWndTB, NULL, TRUE);
        UpdateWindow(hWndTB);
        }

    m_fOurToolsShowing=fShow;
    return;
    }




/*
 * CPatronFrame::ReinstateUI
 *
 * Purpose:
 *  Reinstalls the application's normal toolbar and menu and
 *  readjusts the position of the client window and the documents
 *  within it.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPatronFrame::ReinstateUI(void)
    {
    BORDERWIDTHS    bw;

    ShowUIAndTools(TRUE, TRUE);

    SetRect((LPRECT)&bw, 0, m_cyBar, 0, 0);
    SetBorderSpace(&bw);
    return;
    }



/*
 * CPatronFrame::QueryInterface
 * CPatronFrame::AddRef
 * CPatronFrame::Release
 */

STDMETHODIMP CPatronFrame::QueryInterface(REFIID riid, PPVOID ppv)
    {
    //We only know IUnknown and IOleInPlaceFrame
    *ppv=NULL;

    if (IID_IUnknown==riid || IID_IOleInPlaceUIWindow==riid
        || IID_IOleWindow==riid || IID_IOleInPlaceFrame==riid)
        *ppv=(LPOLEINPLACEFRAME)this;

    if (NULL!=*ppv)
        {
        ((LPUNKNOWN)*ppv)->AddRef();
        return NOERROR;
        }

    return ResultFromScode(E_NOINTERFACE);
    }


STDMETHODIMP_(ULONG) CPatronFrame::AddRef(void)
    {
    return ++m_cRef;
    }

STDMETHODIMP_(ULONG) CPatronFrame::Release(void)
    {
    /*
     * We don't do anything with this since we're not controlled
     * by a reference count as far as in-place stuff is concerned.
     */
    return --m_cRef;
    }




/*
 * CPatronFrame::GetWindow
 *
 * Purpose:
 *  Retrieves the handle of the window associated with the object
 *  on which this interface is implemented.
 *
 * Parameters:
 *  phWnd           HWND * in which to store the window handle.
 *
 * Return Value:
 *  HRESULT         NOERROR if successful, E_FAIL if there is no
 *                  window.
 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费午夜影院| 欧美激情一区二区三区蜜桃视频| 图片区小说区国产精品视频| 国产精品99久久久久久有的能看| 欧美三级在线播放| 中文字幕亚洲区| 精品一区二区三区在线观看国产| 欧洲精品在线观看| 国产精品美女久久久久av爽李琼| 麻豆国产精品视频| 欧美日韩精品欧美日韩精品一 | 欧美日韩一区二区三区四区五区| 中文字幕不卡在线观看| 久久国产精品99久久久久久老狼 | 国产激情91久久精品导航| 欧美一区二区三区视频免费播放 | 中文字幕制服丝袜成人av| 久久成人精品无人区| 欧美日韩成人一区二区| 亚洲欧美另类图片小说| www.欧美日韩| 国产欧美在线观看一区| 精品一区二区免费在线观看| 欧美一级二级在线观看| 日韩精品每日更新| 欧美日韩在线亚洲一区蜜芽| 亚洲日本va午夜在线影院| 大桥未久av一区二区三区中文| 久久婷婷成人综合色| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美三级三级三级爽爽爽| 亚洲精品免费一二三区| 色婷婷久久久综合中文字幕| 亚洲乱码精品一二三四区日韩在线| www.视频一区| 综合欧美一区二区三区| www.综合网.com| 中文字幕日韩一区二区| www.亚洲色图| 亚洲天堂2014| 91理论电影在线观看| 国产精品二三区| 99re66热这里只有精品3直播 | 夜夜嗨av一区二区三区四季av| 不卡的电影网站| 国产精品无人区| 91视频xxxx| 亚洲免费在线观看视频| 色94色欧美sute亚洲13| 伊人色综合久久天天| 色综合天天综合网国产成人综合天 | 日韩精品一区二区三区四区视频| 蜜臀av国产精品久久久久| 这里是久久伊人| 麻豆国产精品一区二区三区| 久久在线观看免费| 高清国产一区二区| 中文字幕二三区不卡| 99久久国产综合精品色伊| 伊人色综合久久天天人手人婷| 欧美视频在线一区二区三区| 日韩电影在线观看网站| 欧美成人一级视频| 国产盗摄视频一区二区三区| 国产精品家庭影院| 欧美性感一类影片在线播放| 青娱乐精品视频| 久久久久国产精品厨房| 99视频精品免费视频| 午夜欧美一区二区三区在线播放| 欧美一区二区三区在线视频| 精品写真视频在线观看| 国产精品成人一区二区艾草| 欧美中文字幕久久| 日韩成人伦理电影在线观看| 久久婷婷国产综合精品青草| 99视频热这里只有精品免费| 爽爽淫人综合网网站| 久久亚洲欧美国产精品乐播| 99精品欧美一区二区三区小说 | 婷婷综合在线观看| 精品福利一二区| 91欧美激情一区二区三区成人| 午夜欧美在线一二页| 久久久久久久久久久久久夜| 99久久免费视频.com| 性感美女极品91精品| 欧美videos中文字幕| 99麻豆久久久国产精品免费优播| 亚洲成人自拍一区| 国产欧美va欧美不卡在线 | 狠狠色伊人亚洲综合成人| 国产精品欧美极品| 8v天堂国产在线一区二区| 国产成人精品三级| 亚洲成人第一页| 欧美极品xxx| 51精品国自产在线| 成人av影院在线| 秋霞午夜鲁丝一区二区老狼| 亚洲图片激情小说| 亚洲精品一区二区三区蜜桃下载| 色成年激情久久综合| 国产精品1区2区| 日韩精品一二三四| 综合自拍亚洲综合图不卡区| 日韩欧美国产麻豆| 色婷婷综合久久久久中文一区二区| 久久99精品久久只有精品| 一区二区三区四区在线免费观看| 久久夜色精品一区| 欧美日韩国产a| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩精品乱码免费| 有坂深雪av一区二区精品| 2023国产精品视频| 8x8x8国产精品| 欧美在线一区二区| 不卡的av电影| 国产一区二区三区综合| 日韩在线一区二区三区| 亚洲精品免费播放| 中文字幕二三区不卡| 欧美成人一区二区三区片免费 | 日韩一卡二卡三卡| 色哟哟欧美精品| 成人黄色片在线观看| 国产一区二区伦理片| 日韩av一区二区三区四区| 亚洲愉拍自拍另类高清精品| 国产精品理伦片| 国产亚洲成av人在线观看导航 | av高清不卡在线| 国产精品一区二区三区乱码| 美女一区二区久久| 五月天欧美精品| 亚洲一二三四在线| 一区二区高清免费观看影视大全| 一区在线中文字幕| 国产精品麻豆一区二区| 国产日产精品一区| 26uuu亚洲综合色欧美 | eeuss鲁一区二区三区| 韩国精品一区二区| 久久99九九99精品| 蜜臀99久久精品久久久久久软件| 水蜜桃久久夜色精品一区的特点 | 国产色爱av资源综合区| 久久影音资源网| 久久综合色综合88| 久久久久久久久久久99999| 精品国产三级电影在线观看| 日韩网站在线看片你懂的| 欧美一区二区久久久| 日韩欧美一级特黄在线播放| 欧美电影免费观看高清完整版| 精品日韩99亚洲| 久久综合精品国产一区二区三区 | 欧美日韩精品一区二区三区| 欧美在线视频日韩| 欧美午夜精品电影| 欧美高清视频一二三区| 欧美顶级少妇做爰| 88在线观看91蜜桃国自产| 欧美一区午夜精品| 精品国产污网站| 亚洲国产精品高清| 亚洲色图.com| 亚洲国产一区二区视频| 三级在线观看一区二区| 青青青伊人色综合久久| 狠狠色狠狠色综合系列| 成人涩涩免费视频| 91色综合久久久久婷婷| 欧美性生活久久| 日韩三级中文字幕| 国产日韩欧美高清在线| 1000精品久久久久久久久| 亚洲欧美日韩综合aⅴ视频| 亚洲国产精品嫩草影院| 免费在线观看精品| 国产精品一色哟哟哟| 成人福利视频网站| 色偷偷久久一区二区三区| 欧美色综合天天久久综合精品| 91精品中文字幕一区二区三区| 欧美www视频| 亚洲欧洲成人精品av97| 亚洲综合av网| 精品一区二区三区在线视频| 成人sese在线| 欧美日韩国产综合视频在线观看| 日韩免费电影网站| 国产精品麻豆一区二区| 亚洲r级在线视频| 国产精品一卡二卡在线观看| 色综合久久久久网| 51精品国自产在线| 国产精品三级久久久久三级| 午夜精品久久久久影视|