1. 程式人生 > >MFC單文件框架程式設計(三): CTabView的使用

MFC單文件框架程式設計(三): CTabView的使用

1. 過載CTabView類,實現CConfBrdView。 class CConfBrdView : public CTabView 2. 新增選項卡 void CConfBrdView::OnInitialUpdate()        //過載OnInitialUpdate函式 { CTabView::OnInitialUpdate(); // TODO: 在此新增專用程式碼和/或呼叫基類 //建立選項卡 AddView(RUNTIME_CLASS(CBCAudioView), _T("音訊"), 103);                        //該選項卡為一個CBCAudioView試圖         ....
this -> GetTabControl().ModifyTabStyle( CMFCTabCtrl::STYLE_3D_VS2005);    //風格 this -> GetTabControl().SetTabBorderSize( 2 ); //邊框大小 this -> GetTabControl().HideSingleTab( TRUE );   //單個Tab時候不顯示Tab標籤 this -> GetTabControl().EnableTabSwap( FALSE );    //禁止拖動  } 2. CBCAudioView檢視
CBCAudioView檢視繼承自CListView, 用以顯示一個表格. (class CBCAudioView : public CListView;) 檢視介面的初始化: BOOL CBCAudioView::PreCreateWindow(CREATESTRUCT& cs)    //過載 { // TODO: 在此新增專用程式碼和/或呼叫基類 cs.style |=  LVS_SHOWSELALWAYS | LVS_REPORT;            //設定report風格 return CListView::PreCreateWindow(cs); } void CBCAudioView::OnInitialUpdate()    //過載 {         CListCtrl& listCtrl = GetListCtrl(); //獲取列表控制元件 LONG lStyle; lStyle = GetWindowLong(listCtrl.m_hWnd, GWL_STYLE);//獲取當前視窗style lStyle &= ~LVS_TYPEMASK;//清除顯示方式位 lStyle |= LVS_REPORT;//設定style SetWindowLong(listCtrl.m_hWnd, GWL_STYLE, lStyle);//設定style DWORD dwStyle = listCtrl.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT;//選中某行使整行高亮(只適用與report風格的listctrl) dwStyle |= LVS_EX_GRIDLINES;//網格線(只適用與report風格的listctrl) //dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控制元件 listCtrl.SetExtendedStyle(dwStyle);//設定擴充套件風格 CRect rect; GetClientRect(rect);          //新增兩列表頭
LV_COLUMN lvcolumn; lvcolumn.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH; lvcolumn.fmt=LVCFMT_LEFT; lvcolumn.cx=rect.Width()/2; lvcolumn.iSubItem=0; lvcolumn.pszText=_T("配置項"); listCtrl.InsertColumn(0,&lvcolumn); lvcolumn.iSubItem=1; lvcolumn.pszText=_T("值"); listCtrl.InsertColumn(1,&lvcolumn); } 3. 過載OnUpdate函式顯示資料 CView *pView = GetActiveView(); if (!pView->IsKindOf(RUNTIME_CLASS( CBCAudioView ))) { return; } CListCtrl& listCtrl =  ((CBCDevInfoView *)pView)->GetListCtrl();// 獲取列表的控制元件 listCtrl.SetItemText(0, 1, string);

相關推薦

MFC框架程式設計(): CTabView的使用

1. 過載CTabView類,實現CConfBrdView。 class CConfBrdView : public CTabView 2. 新增選項卡 void CConfBrdView::OnInitialUpdate()        //過載OnInitialU

MFC框架分析及執行流程(轉)

原文轉自 https://blog.csdn.net/u011619422/article/details/40402705   首先來分析一下MFC單文件類的結構: 它包括如下幾個類: CAboutDlg :  對話方塊框類,對應應用程式的“幫助”->“關於”選單,彈出“關

mfc框架剖析

要看具體的程式碼例項請跳轉:點選開啟連結通過一些巨集定義實現:IMPLEMENT_DYNCREATE BEGIN_MESSAGE_MAPIMPLEMENT_DYNCREATE(class_name,base_class_name)說明:通過DECLARE_DYNCREATE巨

MFC繪圖()——滾動條、滑鼠指標

由於之前建的專案的View類是繼承CView基類的,所以如大多數文章描述的,把所有的CView替換成CScrollView,但是替換之後出現錯誤:viewscrl.cpp line:396  Debug Assertion Failed錯誤。經過除錯定位後發現需要對滾動條初

openGL維網格座標,旋轉,縮放,燈光設定,紋理讀取,模型讀取(MFC

1.三維網格座標建立 2.基本3維圖形建立 3.滑鼠相應旋轉縮放 4.鍵盤相應旋轉縮放 5.燈光設定 6.紋理載入對映 7.讀取模型 關於MFC配置編寫openGL網上有很多教程 需要的函式建立一般是: OnCreat()

VTK與MFC程式聯合程式設計

  興趣需要,想做下VTK與MFC想結合的程式,MFC快要在桌面程式上面失去市場份額了,現在大多使用QT來做,但是本科的時候學的就是MFC,也相對來說比較熟悉,所以就想使用MFC來寫一個簡單的單文件程式。首先我們需要在編譯的時候將USEGUISUPPORT->USEMFC勾

MFC程式中搭建OpenGL框架

一、簡介 Windows GDI是通過裝置控制代碼(Device Context(裝置描述表)以下簡稱"DC")來繪圖,而OpenGL則需要繪製環境(Rendering Context(著色描述表),以下簡稱"RC")。每一個GDI命令需要傳給它一個DC,但

MFC 自定義exe程式左上角圖示

我使用的是vs2012。 1、首先新建一個單文件工程 2、開啟MainFrm.cpp,在OnCreat()函式中return 0;之前新增下列語句:   TCHAR path[100];   GetCurrentDirectory(255,pa

MFC生成多個CMFCToolbar時需要解決的問題

1. 單文件預設生成的工具欄只有一個,但很多時候我們需要新增多個工具欄,比如: m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);m_wndFileToolBar.EnableDocking(CBRS_ALIGN_ANY);m_wndCalibrateT

VS2010-MFC:左側可停靠對話方塊(包含樹控制元件)的實現

在程式開發中我們經常看見有一些軟體左側有目錄樹或者是圖層樹,點選之後就可以右側View視窗顯示相關的內容,其實實現這種機制有兩種方法,第一種就是對MFC的View視窗進行視窗分割,左側的視窗view類派生於CTreeView,其中CTreeView自帶一個變數用於View中的樹控制元件的控制。第二

OpenCV下MFC顯示影象

1、vs2008中新建SDI,最後view類選擇ScorllView以形成帶滾動條的檢視視窗 2、新增OpenCV的連結庫 3、新增相應標頭檔案"cv.h" "highgui.h"到doc.h和view.h(要新增在.h檔案中,不要新增在.cpp中,否則容易出錯) 4、doc類中新增變數

MFC--各個類之間的獲取

View 中獲取Doc //獲取文件類指標物件 XXXDoc *pDoc = (XXXDoc*)GetDocument(); 在Doc中 獲得 View //獲取檢視類指標物件 CUserTreeView *pTreeView; //文件其

MFC--拆分視窗

自定義兩個類CUserTreeView(繼承於CTreeView,顯示使用者資訊)、CMedicListView(繼承於CListView,顯示藥品資訊): 類檢視中,選中頂層資料夾 -> 右擊 -> 新增類 -> MFC -> ……

MFC 新增按鈕

VS 單文件 新增按鈕 今天做專案需要在單文件中建立按鈕來響應函式,即點選按鈕,呼叫某函式,特此記錄。 1. 在XXXView中新增CButton變數,例如 CButton start; 2. 下來就是 建立按鈕 了 ① 在資源 Rescource.h 中註冊一下 按鈕  #define

MFC修改標題和標題圖示

一.修改標題 在doc類中OnNewDocument函式修改,新增修改的標題,如下: BOOL CKTLXSubjectShowDoc::OnNewDocument(){if (!CDocument::OnNewDocument())return FALSE;SetTitl

MFC開啟檔案

開啟檔案類之間關聯 在嚮導建立的應用程式中,程式的預設選單有“檔案”、“編輯”、“檢視”和“幫助”。當執行程式後,開啟“檔案”選單中的“開啟”命令時,應用程式會自動開啟相應的“開啟”檔案通用對話方塊。之所以有這功能,是因為嚮導建立的應用程式框架中,自動將“開啟”選單命令與CWinApp的OnFileOpen成

mfc 退出

  vc++建立一個文件,通過但是檢視上的按鈕來關閉這個檢視。 語句如下: void CXXXXView::OnCancel() {  // TODO: Add your control notification handler code here  ::PostMess

MFC 中新增OnPaint

單文件中新增OnPaint()方法: 1、在xxxView.h裡新增 // 生成的訊息對映函式 protected:  DECLARE_MESSAGE_MAP() public: afx_msg void OnPaint(); 2、實現OnPaint 3、在xx

MFC檢視切換

       在一些情況下,應用程式有許多資訊要顯示,當一個視窗內顯示不下時,VC提供的MDI應用程式可以解決這個問題,但是如果應用程式只是對單個文件,採用多種方式顯示,則採用SDI更合適。那麼,如何在單文件應用程式中實現多檢視呢?預設情況下,派生類的建構函式是pretected型別的,必須將它改為publi

mfc的自定義工具欄

MFC的單文件專案有自帶工具欄,同時作為開發者可以自定義想要的工具欄,下面給出筆者的一種做法供大家參考: 編輯自帶工具欄的步驟分為以下幾步: 第一步:進入專案資源管理器,找到Toolbar資料夾新建一個Toolbar或者直接修改自帶的IDR_MAINFRAME;