• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        Office 2000風(fēng)格的停泊、自動選擇型菜單

        Office 2000風(fēng)格的停泊、自動選擇型菜單

        更新時間:2022-05-07 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        譯者:徐景周(原著:Piero Viano)

        下載演示源碼(http://www.vckbase.com/vckbase/vckbase12/vc/ctrls/menu_07/1207099.htm)

        (譯者注:由于原文作者所提供例子代碼需使用附帶RC資源,經(jīng)本人使用后覺得不夠通用,故將部分源碼修改并將文章翻譯。文中現(xiàn)在所附例子為我最近所作一抓圖程序的界面部分。不光Office 2000智能菜單噢!還包括多文檔視圖的TAB頁顯示,自繪制菜單等,詳情請參看附帶實例代碼。我的EMAIL是:jingzhou_xu@163.net ~O~)

        在你的工程文件中使用Office 2000菜單的話(譯者:目前僅支持多文檔菜單修改,如果要改單文檔菜單界面的話,可對文件中的CMultiDocTemplateEx類、CMDIFrameEx類和CMDIFrameEx類進(jìn)行修改,以適應(yīng)單文檔界面。),請按下面步驟進(jìn)行:

        在資源里的字符串表中新增二字符串:一、ID_SHOWFULL ,32792,顯示完全菜單。二、ID_INTMODE,32794,打開/禁止智能菜單模式。
        將OffMenu文件夾中每一個.cpp和.h文件包含井你的工程文件中。
        編輯工程文件中的 MainFrm.h (主框架頭文件) :
        將原類的聲明從:

        class CMainFrame : public CMDIFrameWnd

        改為:

        #include "MDIFrmEx.h"
        #include "ToolBarEx.h"

        class CMainFrame : public CMDIFrameEx

        接著將類中的工具條類從 CToolBar 改為 CToolbarEx:

        CToolbar m_wndToolBar;

        變成:

        CToolbarEx m_wndToolBar;


        編輯工程文件中的 MainFrm.cpp (主框架文件):
        改變其中消息映射從:

        IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
        BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)

        變成:

        IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameEx)
        BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameEx)

        接著將 CMainFrame::OnCreate 中的:

        if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)

        變?yōu)?

        if (CMDIFrameEx::OnCreate(lpCreateStruct) == -1)


        編輯工程文件中 MyApp.h (應(yīng)用類頭文件):
        改變其中的類聲明從:

        class CTestMDIApp : public CWinApp

        變?yōu)椋?br>
        #include "WinAppEx.h"

        class CTestMDIApp : public CWinAppEx


        編輯工程文件中 MyApp.cpp (應(yīng)用類文件):
        將其中的消息映射從:

        BEGIN_MESSAGE_MAP(CTestMDIApp, CWinApp)

        變?yōu)椋?br>
        #include "DocTplEx.h"

        BEGIN_MESSAGE_MAP(CTestMDIApp, CWinAppEx)

        接著將 CMyApp::InitInstance() 中的下面代碼從:

                 CMultiDocTemplate* pDocTemplate;
                 pDocTemplate = new CMultiDocTemplate(
                         IDR_TESTMDTYPE,
                         RUNTIME_CLASS(CTestMDIDoc),
                         // custom MDI child frame
                         RUNTIME_CLASS(CChildFrame),
                         RUNTIME_CLASS(CTestMDIView));
                 AddDocTemplate(pDocTemplate);

                 // create main MDI Frame window
                 CMainFrame* pMainFrame = new CMainFrame;
                 if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
                         return FALSE;
                 m_pMainWnd = pMainFrame;

        替換成:

                 UINT nID;
                 nID=IDR_MAINFRAME;

                 // create main MDI Frame window
                 CMainFrame* pMainFrame = new CMainFrame;
                 if (!pMainFrame->LoadFrame(nID))
                         return FALSE;
                 m_pMainWnd = pMainFrame;

                 CMultiDocTemplateEx* pDocTemplate;
                 pDocTemplate = new CMultiDocTemplateEx(
                         IDR_TESTMDTYPE,
                         RUNTIME_CLASS(CTestMDIDoc),
                         // custom MDI child frame
                         RUNTIME_CLASS(CChildFrame),
                         RUNTIME_CLASS(CTestMDIView),
                         &nID,1);
                 AddDocTemplate(pDocTemplate);

                 CWinAppEx::InitInstance();


        接下來就可以編釋并運行你的程序了。
        如果你想自己掌控智能菜單的話,可直接重載CmenuBar類中的下面涵數(shù)既可:

        WORD CMenuBar::IncMenuUsage(CMenuEx *pParent,
                                    UINT pos,
                                    WORD curusage)

        BOOL CMenuBar::EvaluateIfGrayed(CMenuEx *pParent,
                                        UINT pos,
                                        WORD &curusage,
                                        int iMed,
                                        int iRange)
        第一個涵數(shù)用來添加當(dāng)前菜單條有用法。第二個涵數(shù)決定當(dāng)前菜單條是否灰色顯示,它也可用來修改當(dāng)前菜單條的用法。如果你想在菜單中存儲應(yīng)用程序中定義的數(shù)據(jù)的話,可用CMenuEx::GetExtraDataPtr(UINT)來包含進(jìn)這些數(shù)據(jù)。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 激情婷婷成人亚洲综合| 免费成人在线视频观看| 色欲色欲天天天www亚洲伊| 日本黄色动图免费在线观看| 夜色阁亚洲一区二区三区| 亚洲国产高清国产拍精品| 国产精品免费网站| 亚洲嫩草影院在线观看| 99精品视频在线视频免费观看 | 成人电影在线免费观看| 国产亚洲美女精品久久久2020| 无码AV动漫精品一区二区免费 | 亚洲人成网站18禁止| 亚洲免费综合色在线视频| 亚洲成年网站在线观看| 最近免费中文字幕视频高清在线看| 亚洲夂夂婷婷色拍WW47| 精品久久久久久久免费人妻| 国产成人亚洲综合在线| 亚洲视频在线精品| 免费91麻豆精品国产自产在线观看| 在线观看亚洲人成网站| 成年女人毛片免费播放人| 精品国产亚洲AV麻豆 | 国产精品免费网站| 国产精品亚洲精品久久精品| 亚洲伊人久久精品影院| 99re6热视频精品免费观看| 国产精品亚洲片夜色在线| 亚洲成A人片在线观看无码3D | 亚洲AV无码专区在线观看成人| 又黄又爽的视频免费看| 免费一区二区无码视频在线播放| 国产亚洲精品精华液| 亚欧免费一级毛片| 亚洲成人黄色在线| 精品国产麻豆免费网站| 九九全国免费视频| 在线免费一区二区| 亚洲制服中文字幕第一区| 日本免费一本天堂在线|