學習VS2010 ------ 多種類型的視圖集合CTabView

多種類型的視圖集合CTabView

首先利用AppWizard建立工程,然後將視類的基類更改爲CTabView,並將所有的CView更改爲CTabView。

依次插入以CSrollView、CListView、CFormView、CEditView爲基類的CView1、CView2、CView3、CView4,並在程序中進行引用:
intCTabViewTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

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

                   return -1;

         // TODO:  Add yourspecialized creation code here

         AddView(RUNTIME_CLASS (CView1), _T("Scroll View"),100);

         AddView(RUNTIME_CLASS (CView2), _T("List View"),101);

         AddView(RUNTIME_CLASS (CView3), _T("Form View"),102);

         AddView(RUNTIME_CLASS (CView4), _T("Edit View"),103);

         return 0;

}

爲了增強各類的顯示效果,分別對加入的各個類型的視類進行程序設計。

在以CSrollView爲基類的CView1中,增加CSroll相關的控制,並在OnDraw中進行圖形的繪製。

在以CListView爲基類的CView2中,更改List的顯示風格

BOOL CView2::PreCreateWindow(CREATESTRUCT& cs)

{

         // TODO: Add your specialized code here and/or call thebase class

         cs.style|= LVS_REPORT;

         return CListView::PreCreateWindow(cs);

}

並在OnInitialUpdate()中加入列表的初始化代碼:

CListCtrl& wndList = GetListCtrl ();

wndList.SetExtendedStyle (LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES);

const int nColumns = 10;

int iColumn = 0;

// Insert columns:

for (iColumn = 0;iColumn < nColumns; iColumn++)

{

         CStringstrColumn;

         strColumn.Format(_T("Column %d"), iColumn + 1);

         wndList.InsertColumn(iColumn, strColumn, LVCFMT_LEFT, 110);

}

// Insert items:

for (int i = 0; i < 10; i++)

{

         const CString strItemFmt = _T("Item (%d, %d)");

         CStringstrItem;

         strItem.Format(strItemFmt, 1, i + 1);

         int iItem = wndList.InsertItem (i, strItem, 0);

         for (iColumn = 1; iColumn < nColumns; iColumn++)

         {

                   strItem.Format(strItemFmt, iColumn + 1, i + 1);

                   wndList.SetItemText(iItem, iColumn, strItem);

         }

}

在以CFormView爲基類的CView3中,加入相應的資源控件並進行程序設計,在以CEditView爲基類的CView4中,加入窗體文本初始化的代碼。

最終軟件界面:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章