青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

QuXiao

每天進(jìn)步一點(diǎn)點(diǎn)!

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  50 隨筆 :: 0 文章 :: 27 評(píng)論 :: 0 Trackbacks
       在一些情況下,應(yīng)用程序有許多信息要顯示,當(dāng)一個(gè)窗口內(nèi)顯示不下時(shí),VC提供的MDI應(yīng)用程序可以解決這個(gè)問題,但是如果應(yīng)用程序只是對(duì)單 個(gè)文檔,采用多種方式顯示,則采用SDI更合適。那么,如何在單文檔應(yīng)用程序中實(shí)現(xiàn)多視圖呢?缺省情況下,派生類的構(gòu)造函數(shù)是pretected類型的, 必須將它改為public類型,因?yàn)槲覀儗?huì)動(dòng)態(tài)生成派生視圖類并切換活動(dòng)的視圖。也可以一次生成所有的視圖,但是這樣造成系統(tǒng)資源的極大浪費(fèi)。

1  首先利用資源編輯器新建4個(gè)對(duì)話框,在對(duì)話框中添加需要的控件,各個(gè)對(duì)話框的ID分別為IDD_MULTIVIEW_FORM,IDD_MULTIVIEW_FORM2,IDD_MULTIVIEW_FORM3,IDD_MULTIVIEW_FORM4

2  為每一個(gè)對(duì)話框創(chuàng)建一個(gè)CFormView類的派生類,分別為:CView1,CView2,CView3,CView4

3  在應(yīng)用程序的初始化文件中用CView1替換原先的視圖,這樣程序啟動(dòng)后的缺省顯示視圖是CView1,修改后的部分代碼如下:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMultiViewDoc),
RUNTIME_CLASS(CMainFrame),       // main SDI frame window
RUNTIME_CLASS(CView1));
AddDocTemplate(pDocTemplate);

4  利用資源編輯器,添加幾個(gè)菜單,并添加相應(yīng)的消息處理函數(shù):
void CMainFrame::OnViewView1() 
{
SwitchToForm(IDD_MULTIVIEW_FORM);   
}

void CMainFrame::OnViewView2() 
{
SwitchToForm(IDD_MULTIVIEW_FORM2);   
}

void CMainFrame::OnViewView3() 
{
SwitchToForm(IDD_MULTIVIEW_FORM3);   
}

void CMainFrame::OnViewView4() 
{
SwitchToForm(IDD_MULTIVIEW_FORM4);   
}

在 SDI中CFrame的派生類即CMainFrame控制著所有的視圖,而且它允許用戶通過消息處理進(jìn)行視圖的切換。進(jìn)行視圖切換的原理很簡單,只是斷開 和舊視圖的連接并把他刪除,創(chuàng)建一個(gè)新視圖,將文檔和它相連,設(shè)置幾個(gè)標(biāo)志,然后顯示新視圖,SwitchToForm函數(shù)是進(jìn)行視圖切換的代碼函數(shù)。

void CMainFrame::SwitchToForm(int nForm)
{
  //CDocument* pDoc = GetActiveDocument();
    CView *pOldActiveView=GetActiveView();             //保存舊視圖
    CView *pNewActiveView=(CView*)GetDlgItem(nForm);   //取得新視圖
    if(pNewActiveView==NULL)
    {
        switch(nForm)
            //這些ID是對(duì)話框的標(biāo)志符,但也可以用其他的標(biāo)志
        {
        case IDD_MULTIVIEW_FORM :
            pNewActiveView=(CView*)new CView1;
            break;
        case IDD_MULTIVIEW_FORM2 :
            pNewActiveView=(CView*)new CView2;
            break;
        case IDD_MULTIVIEW_FORM3 :
            pNewActiveView=(CView*)new CView3;
            break;
        case IDD_MULTIVIEW_FORM4 :
            pNewActiveView=(CView*)new CView4;
            break;
        }
        CCreateContext context;   //將文擋和視圖相連
        context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_CHILD ,
            CFrameWnd::rectDefault, this, nForm, &context);


        pNewActiveView->OnInitialUpdate();
    }
    SetActiveView(pNewActiveView);        //改變活動(dòng)的視圖
    pNewActiveView->ShowWindow(SW_SHOW);  //顯示新的視圖
    pOldActiveView->ShowWindow(SW_HIDE);  //隱藏舊的視圖

    if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView1))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM);

else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView2))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM2);

else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView3))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM3);

else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView4))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM4);

    pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    
    

delete pOldActiveView;   //刪除舊視圖

RecalcLayout();          //調(diào)整框架窗口
}
posted on 2009-07-29 19:51 quxiao 閱讀(1740) 評(píng)論(0)  編輯 收藏 引用 所屬分類: MFC學(xué)習(xí)筆記
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲色诱最新| 亚洲欧美日韩区| 亚洲欧美另类在线观看| 亚洲一区在线观看视频 | 久久综合久久久| 久久久亚洲欧洲日产国码αv | 一区免费视频| 欧美成人小视频| 欧美激情中文字幕乱码免费| 9色精品在线| 亚洲欧美国产日韩中文字幕 | 蜜臀av在线播放一区二区三区| 亚洲国产高清一区| 亚洲三级免费观看| 国产精品a级| 久久久夜色精品亚洲| 蜜桃久久av| 亚洲无人区一区| 久久精品国产v日韩v亚洲| 亚洲高清免费| 一区二区三区不卡视频在线观看 | 欧美专区日韩视频| 久久免费视频网站| 亚洲一区二区三区色| 欧美一区二区三区在线观看| 亚洲精品一二| 欧美一区二区三区免费视频| 日韩天堂av| 欧美亚洲一区二区在线观看| 91久久久久久国产精品| 亚洲欧美国产精品va在线观看| 最新中文字幕一区二区三区| 亚洲视频每日更新| 亚洲第一综合天堂另类专| 中文日韩在线| 亚洲日本欧美日韩高观看| 亚洲午夜激情网站| 亚洲免费av网站| 久久国产精品第一页| 亚洲综合欧美日韩| 欧美国产先锋| 麻豆乱码国产一区二区三区| 国产精品人人爽人人做我的可爱| 欧美激情精品| 国内揄拍国内精品久久| 国产精品99久久久久久久女警| 亚洲国产99| 欧美在线视频全部完| 亚洲一区二区在| 欧美精品在线观看| 免费观看国产成人| 国产一区二区精品| 亚洲女爱视频在线| 亚洲一区二区三区影院| 欧美电影在线播放| 欧美激情久久久久| 伊人久久久大香线蕉综合直播| 亚洲欧美在线一区二区| 亚洲欧美色婷婷| 欧美日韩亚洲高清一区二区| 亚洲激情婷婷| 亚洲精品日韩久久| 欧美激情一区二区三区全黄 | 亚洲欧洲一区二区三区| 亚洲国产精品久久久久婷婷老年| 久久精品成人欧美大片古装| 久久久精品久久久久| 国产欧美 在线欧美| 亚洲欧美日韩一区二区在线 | 在线视频欧美日韩| 欧美精品一区二区三区蜜桃| 亚洲黄色高清| 在线视频你懂得一区| 欧美精品一线| 99在线热播精品免费99热| 夜夜爽av福利精品导航 | 久久岛国电影| 久久精品二区亚洲w码| 国产麻豆精品theporn| 欧美在线3区| 久久亚洲精品中文字幕冲田杏梨| 国产亚洲人成网站在线观看| 久久精品国产久精国产爱| 裸体女人亚洲精品一区| 最新国产成人在线观看| 欧美片在线观看| 亚洲一区二区精品在线| 久久久久久自在自线| 在线观看欧美日本| 欧美日本一道本| 亚洲一区二区三区视频播放| 久久久国产成人精品| 亚洲国产成人不卡| 欧美日韩一本到| 欧美一区二区三区免费大片| 免费在线观看一区二区| 一区二区高清视频| 国产日韩欧美在线一区| 另类国产ts人妖高潮视频| 亚洲精品影院| 久久午夜电影| 亚洲视频欧洲视频| 激情视频一区二区| 欧美日韩国产综合网| 久久精品理论片| 亚洲最新合集| 欧美国产精品劲爆| 午夜精品国产更新| 亚洲人成精品久久久久| 国产农村妇女精品| 欧美顶级艳妇交换群宴| 欧美一区二区三区四区高清| 亚洲人成网站在线播| 久久五月婷婷丁香社区| 一区二区三区偷拍| 亚洲电影观看| 国产精品一页| 欧美日韩国产123| 久久亚洲精品网站| 午夜精品影院在线观看| 日韩网站在线看片你懂的| 久久一二三四| 欧美一区二区三区四区视频| 9色国产精品| 亚洲国产精品久久久久久女王| 国产欧美三级| 欧美色视频日本高清在线观看| 免费久久99精品国产| 欧美在线视频网站| 亚洲一区二区在线免费观看| 亚洲精品在线三区| 欧美激情中文不卡| 欧美大片免费久久精品三p | 久久精品视频在线播放| 这里只有视频精品| 亚洲美女福利视频网站| 亚洲福利视频免费观看| 欧美大片在线观看| 老司机午夜精品视频在线观看| 欧美一区二区三区在线观看视频| 亚洲视频国产视频| 一本一本久久a久久精品综合妖精| 亚洲欧洲午夜| 亚洲精品美女在线| 日韩午夜黄色| 99国产精品99久久久久久粉嫩| 亚洲精品一区二区在线| 亚洲激情在线观看| 亚洲日本一区二区| 最新国产拍偷乱拍精品 | 国产精品视频男人的天堂| 欧美午夜一区二区三区免费大片| 欧美日韩国产在线播放| 欧美视频在线免费| 国产精品区二区三区日本| 国产欧美韩日| 国内不卡一区二区三区| 有坂深雪在线一区| 亚洲国产日韩一级| 99综合精品| 午夜亚洲福利在线老司机| 羞羞视频在线观看欧美| 久久免费国产精品| 欧美v国产在线一区二区三区| 亚洲国产精品一区二区www在线 | 亚洲精品一区在线| 亚洲午夜视频在线| 久久精品视频在线看| 欧美大片在线观看一区二区| 欧美色另类天堂2015| 国产欧美日韩在线观看| 伊人一区二区三区久久精品| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美日韩国产大片| 国产乱人伦精品一区二区| 激情视频一区二区| 夜夜狂射影院欧美极品| 欧美在线日韩| 亚洲电影免费在线 | 亚洲人成在线免费观看| 亚洲视频免费看| 久久夜色精品国产噜噜av| 欧美日韩一区在线播放| 国产一区二区三区在线观看精品 | 久久免费黄色| 日韩一级裸体免费视频| 欧美资源在线观看| 欧美视频不卡中文| 亚洲成色www8888| 亚洲网站视频| 欧美激情亚洲视频| 欧美一区二区黄| 欧美日韩在线播放三区| 极品日韩av| 欧美亚洲尤物久久| 亚洲美女中文字幕| 美女免费视频一区| 黄色欧美成人| 久久精品国产第一区二区三区最新章节| 欧美激情精品久久久久久黑人|