• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Office 2000風格的停泊、智能型菜單

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    譯者:徐景周(原著:Piero Viano) 下載演示源碼(http://www.vckbase.com/vckbase/vckbase12/vc/ctrls/menu_07/1207099.htm) (譯者注:由于原文作者所提供例子代碼需使用附帶RC資源,經本人使用后覺得不夠通用,故將部分源碼修改并將文章翻譯。文中現在所附例
    譯者:徐景周(原著:Piero Viano)

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

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

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

    在資源里的字符串表中新增二字符串:一、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)

    變為:

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


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

    class CTestMDIApp : public CWinApp

    變為:

    #include "WinAppEx.h"

    class CTestMDIApp : public CWinAppEx


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

    BEGIN_MESSAGE_MAP(CTestMDIApp, CWinApp)

    變為:

    #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類中的下面涵數既可:

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

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

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>