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

鐵觀音

C++編程寶典

   ::  ::  ::  ::  :: 管理 ::
  1 隨筆 :: 19 文章 :: 0 評論 :: 0 Trackbacks
簡 介】
  目前基于分割視圖的應(yīng)用開發(fā)十分流行,分割視圖技術(shù)是在同一個(gè)框架窗口下同時(shí)顯示多個(gè)視圖的一項(xiàng)技術(shù)。運(yùn)用分割視圖,可以在較短時(shí)間內(nèi)給用戶更多的信息量,從而使得用戶界面更加的友好,增強(qiáng)了軟件的可操作性。本文提出一個(gè)分割視圖的通用創(chuàng)建框架。

目前基于分割視圖的應(yīng)用開發(fā)十分流行,分割視圖技術(shù)是在同一個(gè)框架窗口下同時(shí)顯示多個(gè)視圖的一項(xiàng)技術(shù)。運(yùn)用分割視圖,可以在較短時(shí)間內(nèi)給用戶更多的信息量,從而使得用戶界面更加的友好,增強(qiáng)了軟件的可操作性。本文提出一個(gè)分割視圖的通用創(chuàng)建框架。  

  1.分割視圖創(chuàng)建框架

  分割視圖的創(chuàng)建大體上分為兩個(gè)步驟:其一是創(chuàng)建分割窗體;然后就是處理鼠標(biāo)和鍵盤等消息。

  1) 創(chuàng)建分割窗體

  MFC提供分割窗體類CsplitterWnd,它提供了很多對于分割窗體操作的成員函數(shù),每一個(gè)分割窗體都是一個(gè)CsplitterWnd的對象。本文提出的框架由于需要對定制的分割窗體進(jìn)行擴(kuò)充處理,所以首先從CsplitterWnd繼承一個(gè)子類CFixSplitterWnd,然后每個(gè)分割窗體是一個(gè)CfixSplitterWnd的對象,這樣以后只需要對CfixSplitterWnd進(jìn)行改寫后就可以增強(qiáng)分割窗體的功能。(后面將提出這種改寫)

  創(chuàng)建分割窗體最重要的函數(shù)是主框架類的OnCreateClient函數(shù),它將在主框架創(chuàng)建的時(shí)候調(diào)用,本文將創(chuàng)建一個(gè)如下顯示的分割窗體:

VC設(shè)計(jì)分割視圖通用創(chuàng)建框架
  

  則可以如下實(shí)現(xiàn):  

  //成員變量聲明

  CFixSplitterWnd m_wndSplitterH; //用于橫向切割

  CFixSplitterWnd m_wndSplitterV; //用于縱向切割

  BOOL m_bCreateSplitter;  

  //分割窗體的實(shí)現(xiàn)

  BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)

  {

  //對整個(gè)主框架進(jìn)行混合分割視圖

  BOOL bResult=m_wndSplitterV.CreateStatic(this,1,2);

  ASSERT(bResult);

  m_wndSplitterH.CreateStatic(&m_wndSplitterV,4,1,WS_CHILD   WS_VISIBLE,m_wndSplitterV.IdFromRowCol(0,1));

//創(chuàng)建各自子窗片的對應(yīng)的視圖

  m_wndSplitterV.CreateView(0,0,RUNTIME_CLASS(CSceneView),CSize(600,600),pContext);

  m_wndSplitterH.CreateView(0,0,RUNTIME_CLASS(CPitchView),CSize(100,100),pContext);

  m_wndSplitterH.CreateView(1,0,RUNTIME_CLASS(CYawView),CSize(100,100),pContext);

  m_wndSplitterH.CreateView(2,0,RUNTIME_CLASS(CRollView),CSize(100,100),pContext);

  m_wndSplitterH.CreateView(3,0,RUNTIME_CLASS(CControlView),CSize(100,100),pContext);

  //設(shè)置窗格的初始化的大小

  m_wndSplitterV.SetRowInfo(0,IDEAL_RAWHEIGHT,0);

  m_bCreateSplitter=TRUE;

  //激活sceneview使得其可以接受命令消息

  m_wndSplitterV.SetActivePane(0,0,NULL);

  return bResult;

  }

  //主框架窗體大小發(fā)生變化,調(diào)節(jié)相應(yīng)的窗體大小

  void CMainFrame::OnSize(UINT nType, int cx, int cy)

  {

  CMDIFrameWnd::OnSize(nType, cx, cy);

  CRect rect;

  GetClientRect(rect);

  if (m_bCreateSplitter)?
??????{

  m_wndSplitterV.SetColumnInfo(0,rect.Width() *3/4,10);

  m_wndSplitterV.SetColumnInfo(1,rect.Width() *1/4,10);

  m_wndSplitterH.SetRowInfo(0,rect.Height() /6,10);

  m_wndSplitterH.SetRowInfo(1,rect.Height() /6,10);

  m_wndSplitterH.SetRowInfo(2,rect.Height() /6,10);

  m_wndSplitterH.SetRowInfo(3,rect.Height()/2,10);

  }

  m_wndSplitterV.RecalcLayout();

  m_wndSplitterH.RecalcLayout();

  }

  注意m_wndSplitterH.CreateView 中的第二個(gè)參數(shù),這個(gè)參數(shù)將分割窗體和相應(yīng)的視圖類相對應(yīng)。

  通過上述的程序代碼即可創(chuàng)建圖1所示的分割窗體,那么由于這里每個(gè)分割窗體都是一個(gè)CfixSplitterWnd對象,所以可以通過改寫CfixSplitterWnd類的虛函數(shù)或消息處理函數(shù)來完成自己特定的應(yīng)用實(shí)現(xiàn)。(注意,如果需要對定制有特定屬性的分割窗體,一定要派生自己的分割窗體類而不能是MFC的CsplitterWnd類)這里我們需要分割窗體不能隨鼠標(biāo)拖動(dòng)而改變其大小,即所有窗格的大小都是一定的,不能在運(yùn)行時(shí)刻改變。所以必須在CfixSplitterWnd類的實(shí)現(xiàn)中加入如下代碼:  

  void CFixSplitterWnd::OnMouseMove(UINT nFlags, CPoint point)

  {

  CWnd::OnMouseMove(nFlags, point); //防止鼠標(biāo)出現(xiàn)拖動(dòng)狀

  // CSplitterWnd::OnMouseMove(nFlags, point); //鼠標(biāo)會(huì)在窗體邊界出現(xiàn)拖動(dòng)狀

  }

  至此,分割窗體已經(jīng)創(chuàng)建完畢,下面需要在分割窗體里處理消息。

  2) 分割窗體處理消息

  在分割窗體里處理消息和一般的文檔視圖模型處理消息大致一樣,但它也有其特殊之處。具體來說,由于各個(gè)分割窗體已經(jīng)與具體的視圖類相聯(lián)系了,所以在需要處理各個(gè)分割窗體中的消息時(shí),可以直接到相應(yīng)的視圖類中進(jìn)行處理;另外,多視圖之間的切換會(huì)導(dǎo)致目標(biāo)焦點(diǎn)之間的變更,這樣會(huì)影響菜單中與視圖有關(guān)的命令的執(zhí)行。比如在圖1中所示的分割窗體中,有一個(gè)“開始”命令必須是焦點(diǎn)在CsceneView視圖上時(shí)才能執(zhí)行,否則就應(yīng)該讓該命令不能執(zhí)行(即該菜單呈現(xiàn)灰色),則實(shí)現(xiàn)時(shí)可以首先對鼠標(biāo)進(jìn)行點(diǎn)擊測試,判斷是否在CsceneView視圖范圍內(nèi),如果是的話就允許執(zhí)行,否則就不允許執(zhí)行。

  2.結(jié)論

  通過本文提出的分割視圖創(chuàng)建框架,可以滿足對視圖進(jìn)行復(fù)雜控制的需求,希望本文可以給大家一個(gè)啟發(fā),從而能夠創(chuàng)建更為完美的分割視圖應(yīng)用程序。
posted on 2006-09-01 10:08 鐵觀音 閱讀(225) 評論(0)  編輯 收藏 引用 所屬分類: VC界面控件類
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久大香伊蕉在人线观看热2| 欧美中文字幕在线播放| 免费人成精品欧美精品| 亚洲欧美日韩专区| 国产精品亚洲不卡a| 亚洲欧美视频一区二区三区| 一区二区成人精品| 国产精品白丝jk黑袜喷水| 亚洲天堂免费在线观看视频| 99国产精品99久久久久久| 欧美性一区二区| 欧美一区二区三区播放老司机| 午夜久久电影网| 在线看片欧美| 99re8这里有精品热视频免费| 国产精品乱码一区二三区小蝌蚪| 午夜影院日韩| 久久亚洲影音av资源网| 亚洲精品网址在线观看| 亚洲一区三区电影在线观看| 国内精品美女在线观看| 亚洲精品国产系列| 国产精品亚洲综合久久| 欧美77777| 国产精品成人免费| 久久综合色88| 欧美三级在线视频| 久久综合久久美利坚合众国| 欧美96在线丨欧| 午夜日韩视频| 欧美韩日高清| 久久成人免费网| 免费人成精品欧美精品| 午夜精品久久久久久久蜜桃app | 夜夜爽夜夜爽精品视频| 亚洲欧美日韩国产另类专区| 亚洲精品久久嫩草网站秘色| 亚洲女人小视频在线观看| 亚洲精品影院| 久久国产精品亚洲va麻豆| 亚洲香蕉在线观看| 久久在精品线影院精品国产| 亚洲欧美国产视频| 欧美激情亚洲精品| 欧美成人一区在线| 国产日韩欧美高清| 亚洲美女av在线播放| 亚洲第一色在线| 久久国产主播精品| 午夜精品三级视频福利| 欧美激情片在线观看| 久久另类ts人妖一区二区| 国产精品九九| 亚洲久色影视| 亚洲国产一二三| 久久久久久久久久久成人| 欧美亚洲一级| 国产精品精品视频| 99国产一区| 亚洲视频在线观看三级| 欧美久色视频| 亚洲国产精品久久久久婷婷老年 | 欧美精品九九99久久| 免费视频一区| 黄色精品一二区| 久久精品国产精品亚洲| 久久国产99| 国产一区视频在线观看免费| 亚洲欧美一区二区原创| 亚洲欧美日韩国产一区| 欧美亚韩一区| 亚洲婷婷国产精品电影人久久| 亚洲视频在线二区| 国产精品久久久久7777婷婷| 亚洲一二三区在线| 欧美一区二区三区免费观看| 国产精品一区二区你懂得| 亚洲自拍偷拍一区| 欧美在线看片| 国产一区二区三区精品久久久| 欧美在线网址| 欧美高清视频一区| 日韩午夜精品| 国产精品欧美精品| 校园春色国产精品| 噜噜爱69成人精品| 亚洲日本成人网| 欧美手机在线视频| 亚洲欧美另类国产| 免费久久精品视频| 亚洲精品视频在线| 国产精品私人影院| 久久嫩草精品久久久精品| 欧美大胆成人| 国产精品99久久99久久久二8 | 国产一区 二区 三区一级| 久久久久一区二区三区| 91久久久一线二线三线品牌| 亚洲午夜成aⅴ人片| 国产欧美日韩在线| 美日韩精品免费观看视频| 99精品99久久久久久宅男| 久久精品论坛| 最新中文字幕一区二区三区| 欧美色网一区二区| 久久精品99国产精品| 亚洲精品在线免费观看视频| 久久精品99国产精品酒店日本| 136国产福利精品导航网址| 欧美日韩综合在线| 久久亚洲欧美| 亚洲欧美日韩高清| 亚洲人成在线播放| 久久亚洲欧美| 午夜精品一区二区在线观看| 亚洲高清视频在线| 国产亚洲精品一区二555| 欧美精品尤物在线| 久久久久久伊人| 在线综合欧美| 亚洲国产专区| 欧美成人免费网| 久久激情久久| 亚洲欧美一区二区视频| 一区二区三区四区蜜桃| 亚洲成色777777在线观看影院| 国产精品久久午夜夜伦鲁鲁| 欧美大秀在线观看| 久久久国际精品| 亚洲欧美一区在线| 亚洲午夜av在线| a91a精品视频在线观看| 亚洲日本一区二区三区| 欧美国产视频日韩| 久久综合色综合88| 久久久国产精品一区| 午夜久久tv| 欧美一级播放| 欧美一区二区三区成人| 亚洲欧美另类在线观看| 一本色道久久综合狠狠躁篇怎么玩| 红桃视频一区| 在线观看成人一级片| 国产一区二区三区在线观看网站| 国产精品视频大全| 欧美三级在线| 国产精品久久久一区二区三区| 欧美日韩一二区| 欧美色精品天天在线观看视频 | 另类酷文…触手系列精品集v1小说| 亚洲一区一卡| 性18欧美另类| 亚洲欧美欧美一区二区三区| 亚洲一区二三| 欧美一区亚洲一区| 久久久久久久网| 免费亚洲视频| 欧美日韩在线一区二区三区| 欧美午夜剧场| 国产伦精品一区二区三区免费| 国产欧美一区二区白浆黑人| 国产真实乱偷精品视频免| 国产综合在线视频| 亚洲韩国日本中文字幕| 亚洲最新色图| 欧美一级片久久久久久久| 久久九九久精品国产免费直播| 久久三级视频| 欧美激情视频在线播放 | 亚洲国产老妈| av成人激情| 久久xxxx精品视频| 免费日韩视频| 国产精品久久久99| 一区在线免费| 亚洲图片在线| 久久欧美中文字幕| 亚洲裸体在线观看| 欧美一区二区| 欧美日本一区| 国产亚洲欧美日韩一区二区| 亚洲精品欧美极品| 久久精品日韩| 亚洲免费精品| 老司机一区二区三区| 国产精品福利av| 亚洲国产成人在线| 亚洲欧美日韩国产综合| 欧美fxxxxxx另类| 亚洲素人在线| 欧美极品在线视频| 国产最新精品精品你懂的| 99精品欧美一区二区三区综合在线 | 久久成人精品视频| 欧美日韩亚洲国产精品| 亚洲第一中文字幕| 午夜亚洲激情| 亚洲欧洲一级| 老色鬼久久亚洲一区二区| 国产欧美日韩精品专区|