第4章vc++程序設計課件內容-_第1頁
第4章vc++程序設計課件內容-_第2頁
第4章vc++程序設計課件內容-_第3頁
第4章vc++程序設計課件內容-_第4頁
第4章vc++程序設計課件內容-_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、建議學時:12學習重點:理解相關概念 掌握對話框編程 掌握常用控件使用第四章 對話框及Windows常用控件1本章內容123對話框模態(tài)對話框和非模態(tài)對話框屬性對話框通用對話框Windows常用控件6綜合實例45對話框主要由兩部分組成:對話框資源和對話框類 對話框資源4.1 對話框概述對話框類4.1 對話框概述4.1 對話框概述 對話框(Dialog Box)是GUI(圖形用戶界面Graphical User Interface)的常用組件,也是其最復雜的組件。按照對話框工作方式可以分為兩種類型:模態(tài)對話框和非模態(tài)對話框。模態(tài)對話框:在關閉模態(tài)對話框之前,該程序不能進行其他工作。我們通常所用的對

2、話框大部分都是模態(tài)對話框。如:“保存”對話框;“打開”對話框。非模態(tài)對話框:非模態(tài)對話框打開后,該程序仍然能夠進行其他工作。如:“查找與替換”對話框。 MFC的對話框基類為CDialog,它既支持模態(tài)對話框,也支持非模態(tài)對話框。派生關系如下所示:CObjectCCmdTargetCWndCDialog4.1 對話框概述CDialog的主要的成員函數(shù)有:virtual int DoModal()功能:打開模態(tài)對話框,直到對話框關閉時返回。若點擊“OK”鍵關閉,則返回“IDOK”。 BOOL Create(LPCTSTR lpszTemplateName,CWnd *pParentWnd = NU

3、LL)功能:創(chuàng)建一個對話框。(通常用于非模態(tài)對話框的創(chuàng)建)void EndDialog(int nResult)功能:退出一個模態(tài)對話框4.1 對話框概述virtual void OnCancel()功能:該函數(shù)是單擊模態(tài)或非模態(tài)對話框中的Cancel按鈕,或Esc鍵時,由框架調用。virtual BOOL OnInitDialog()功能:對話框初始化 virtual void OnOK()功能:單擊OK(或確定)按鈕,(ID為IDOK的按鈕)時調用的函數(shù),關閉模態(tài)對話框,并返回IDOK。4.1 對話框概述1.模態(tài)對話框的創(chuàng)建和引用過程基本步驟: 添加對話框資源,設置其屬性。 在Resour

4、ce View,Dialog中右鍵點擊,插入新對話框。 4.2 模態(tài)和非模態(tài)對話框IDD通常需要修改Caption用于輸入標題要確保Language為“中文”4.2 模態(tài)和非模態(tài)對話框 為新建的對話框建立相應的類。使對話框與具體的類相綁定。 4.2 模態(tài)和非模態(tài)對話框 在主對話框中定義對話框對象,并調用DoModal函數(shù)打開注意:在主對話框類中需要添加#include “對話框類名.h” 如:#include “Dlg1.h” CDlg1 d1; d1.DoModal();4.2 模態(tài)和非模態(tài)對話框【例4_1】模態(tài)對話框的創(chuàng)建過程。4.2 模態(tài)和非模態(tài)對話框2. 非模態(tài)對話框的創(chuàng)建和引用過程基

5、本步驟: 在Resource View,Dialog中右鍵點擊,插入新對話框。 為新建的對話框建立相應的類。使對話框與具體的類相綁定 在主對話框中定義對話框對象,并調用Create函數(shù)打開。并通過ShowWindow函數(shù)顯示。注意:定義類的對象必須定義為指針類型。 利用DestroyWindow函數(shù)關閉非模態(tài)對話框。注意:OnOk或OnCancel函數(shù)僅為隱藏非模態(tài)對話框,而DestroyWindow可以關閉非模態(tài)對話框。4.2 模態(tài)和非模態(tài)對話框例如:CNewDlg *pDlg=new CNewDlg;pDlg-Create(IDD_DIALOG1,this);pDlg-ShowWindow

6、(SW_SHOW); 4.2 模態(tài)和非模態(tài)對話框【例4_2】非模態(tài)對話框的創(chuàng)建過程。4.2 模態(tài)和非模態(tài)對話框 創(chuàng)建屬性頁的方法(兩種) 1. 在相關函數(shù)里創(chuàng)建CPropertySheet類的對象。添加每個屬性頁對話框,并為每個對話框添加以CPropertyPage類為基類的對話框類。創(chuàng)建CPropertySheet類的對象,調用AddPage函數(shù)進行加載AddPage函數(shù)定義: void AddPage( CPropertyPage *pPage )調用DoModal函數(shù)打開屬性對話框。4.3 屬性對話框參考代碼:CPropertySheet s1(_T(屬性頁對話框);CPage1 p1;

7、CPage2 p2;CPage3 p3;s1.AddPage(&p1);s1.AddPage(&p2);s1.AddPage(&p3);s1.DoModal();4.3 屬性對話框【例4_3】屬性對話框的創(chuàng)建過程。4.3 屬性對話框2. 創(chuàng)建一個新的以CPropertySheet為基類的類,并通過其對象創(chuàng)建。(書上的方法)添加每個屬性頁對話框,并為對話框添加以CProperty Page類為基類的對話框類。創(chuàng)建新的以CPropertySheet為基類的類。 Project-Add Class-MFC class-4.3 屬性對話框在新類的.h文件內添加屬性頁類的對象。如: CPage1 p1;

8、CPage2 p2;CPage3 p3;在新類的.cpp文件的第二個構造函數(shù)內調用AddPage函數(shù)加載如:AddPage(&p1); AddPage(&p2); AddPage(&p3);在相關函數(shù)中創(chuàng)建新類的對象,并調用DoModal函數(shù)打開屬性頁對話框。4.3 屬性對話框 已經被系統(tǒng)定義好,直接可以拿來使用的對話框4.4 通用對話框消息對話框( MessageBox或AfxMessageBox 類) 一種簡單的對話框,用戶可以直接調用消息對話框函數(shù)來使用它,而不需要自己創(chuàng)建。Visual C+提供三個消息對話框函數(shù),它們的原型為:int AfxMessageBox(LPCTSTR lpT

9、ext,UINT nType=MB_OK,UINT nIDHelp=0);int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT nType);int CWnd:MessageBox(LPCTSTR lpText,LPCTSTR lpCaption=NULL,UINT nType= MB_OK);4.4 通用對話框4.4 通用對話框4.4 通用對話框例如:void CLi2_1View:OnDraw(CDC* pDC)CLi2_1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ T

10、ODO: add draw code for native data hereMessageBox(_T(這是一個單文檔應用程序!), _T(消息框), MB_ICONEXCLAMATION|MB_OKCANCEL);或者AfxMessageBox(_T(這是一個單文檔應用程序!),MB_ICONEXCLAMATION|MB_OKCANCEL); 兩個函數(shù)均至少可定義一個參數(shù)。運行結果如下: 1. 顏色對話框( CColorDialog 類) CColorDialog類提供了可以選擇顏色的對話框,使得用戶可以從顏色列表中選擇要用的顏色。該類的操作步驟進行:(1) 在視圖類相應位置構造CColo

11、rDialog對象。(2) 調用成員函數(shù)DoModal()來顯示對話框并讓用戶從中選擇顏色。(3) 通過GetColor函數(shù)獲取得到的顏色。參考代碼: CClientDC dc(this); CColorDialog coldlg; if(coldlg.DoModal()=IDOK) COLORREF col=coldlg.GetColor();dc.SetTextColor(col);dc.TextOut(250,250,_T(顏色被選定); 4.4 通用對話框【例4_4_1】顏色對話框的使用。4.4 通用對話框 2. 字體對話框(CFontDialog類)CFontDialog的成員函數(shù)

12、4.4 通用對話框 CFontDialog類封裝了標準的【字體】對話框,使得用戶可以從系統(tǒng)安裝的字體列表中選擇要用的字體。 該類的操作步驟進行:(1)定義LOGFONT對象f1,并定義CFontDialog對象dlg(&f1)(2)通過DoModal對象打開字體對話框(3)通過CFont的成員函數(shù)CreateFontIndirect創(chuàng)建所選字體,并通過GetColor函數(shù)獲取所選顏色。參考代碼: CClientDC dc(this); LOGFONT f1; COLORREF c1; CFontDialog fontdlg(&f1); if(fontdlg.DoModal()=IDOK) CF

13、ont f2; f2.CreateFontIndirect(&f1); CFont *oldfont=dc.SelectObject(&f2); c1=fontdlg.GetColor(); dc.SetTextColor(c1); dc.TextOut(250,250,_T(字體被選定); dc.SelectObject(oldfont); 4.4 通用對話框【例4_4_2】字體對話框的使用。 3. 文件對話框(CFileDialog類) 用CFileDialog類提供的通用文件對話框,實現(xiàn)Windows標準的【打開】和【另存為】功能。使用CFileDialog步驟:構造CFileDialo

14、g類的對象。該類的構造函數(shù)為: CFileDialog(BOOL bOpenFileDialog,) 值為TRUE,代表【打開】對話框; 值為FALSE,構造【另存為】對話框CFileDialog dlg(TRUE,_T(bmp“),_T(*.bmp“), OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,_T(文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|);第1個參數(shù)TRUE:【打開】對話框;第2個參數(shù)“bmp”:如果在文件名對話框中輸入文件名時未指定擴展名,則會自動附加“.bmp”;第3個參數(shù)“*.bmp”:文件名對話框中的初始文件

15、名是*.bmp;第4個參數(shù)代表dwFlags:不顯示隱藏文件,且可以在列表框中進行多選;如:OFN_EXPLORER,OFN_HIDEREADONLY,OFN_ALLOMULTISELECT第5個參數(shù)是過濾器:允許打開文件的類型,可以多選,以|表示或者,以|表示結束。 (2) 調用成員函數(shù)DoModal( ),將對話框顯示在屏幕上,并讓用戶從中選擇文件。(3) 如果DoModal( )返回的是IDOK,那么調用下表中的成員函數(shù)獲取文件信息。參考代碼:CFileDialog dlg(FALSE,_T(txt),_T(*.txt),OFN_EXPLORER ,_T(文本文件(*.txt)|*.tx

16、t|所有文件(*.*)|*.*|);CString s;if(dlg.DoModal()=IDOK)s=dlg.GetPathName();MessageBox(s+_T(被保存),_T(保存文件);【例4_4_3】打開和保存對話框的使用。本部分小結: (1)了解對話框的含義,屬性。(2)了解如何在資源視圖中添加新的對話框,設置對話框屬性,并為對話框添加類。(3)熟悉模態(tài)對話框和非模態(tài)對話框的創(chuàng)建過程。(4)掌握通用對話框。1增加或刪除控件增加控件:從控件工具欄中選中要增加的控件,再將此控件拖動至對話框模板中的確定位置上刪除控件:先單擊對話框中的控件,再按Delete鍵 控件的選擇按鈕組合框復

17、選框編輯框分組框列表框單選按鈕靜態(tài)文本圖片水平滾動條垂直滾動條滾動條旋轉按鈕進度條熱鍵列表視圖樹形視圖標簽動畫組合編輯日期選擇日歷IP地址組合框的擴展用戶定制工具控件屬性與組織:右鍵點擊控件-property通常需要修改的是:Caption(標題)和ID(ID標號)當選中若干個控件后可以調整控件的相對位置。若沒有以下視圖則選擇添加自定義工具欄-”布局”。4.5 Windows常用控件調整Tab 順序Tab Order規(guī)定了使用Tab鍵訪問控件的順序,默認的Tab Order是控件生成的順序,選擇菜單項Format|Tab Order可以顯示并修改Tab Order。 改變Tab Order的方

18、法是:選擇Tab Order菜單項、出現(xiàn)了順序號之后,按所需的訪問順序依次單擊每一個控件,然后,單擊空白處??丶某蓡T變量:右鍵點擊控件-Add variable控件的成員變量:創(chuàng)建的成員變量分為值類型和控件類型。類型描述Value值類型成員變量,用于控件值控制,由所連接的控件類型決定。例如可以有Cstring,int,Float,bool等。Control控件類型的成員變量,實質是控件類的一個對象。可以通過建立一個Control的成員變量調用該類的相關成員函數(shù)。編輯框的通知消息 成員變量 UpdateData(TRUE) UpdateData(FALSE) 讀取變量 顯示變量訪問控件一般有三

19、種方法:1利用對話框的數(shù)據(jù)交換功能訪問控件2通過控件對象來訪問控件3利用CWnd類的一些用于管理控件的成員函數(shù)來訪問控件4.5.1 控件編程方法常用的用于控件的函數(shù):GetDlgItem()函數(shù):該函數(shù)根據(jù)參數(shù)說明的控件ID,返回指定控件的一個CWnd型指針。程序可以把該指針強制轉換成相應的控件類指針,然后通過該指針來訪問控件。SetFocus()函數(shù):設置當前輸入焦點。GetFocus()函數(shù):獲取當前擁有輸入焦點的CWnd對象。 靜態(tài)控件(Static Control)是用來顯示一個文本串或圖形信息的控件,包括靜態(tài)文本控件(Static Text)、圖片控件(Picture Control

20、)和組框(Group Box)。 所有靜態(tài)控件默認的ID標識都為IDC_STATIC,如果需要在程序中區(qū)分和操縱各個不同的靜態(tài)控件,必須重新為它指定一個惟一的ID標識。 4.5.3 常用控件CStatic類控件1. Static Text 靜態(tài)文本控件不要求與對話框進行交互,需要顯示的文本串只要在該控件屬性對話框的Caption屬性中直接輸入。修改Caption值其它屬性:Align text 決定文本的橫向對戲方式:Left Center Right。默認Left.No prefix 不將控件文本中的“&”符解釋為助記字符。在默認情況下,”&”符號在現(xiàn)實時會被去掉,取而代之的是緊接“&”符號

21、之后的字符被加以下劃線的格式進行顯示。No wrap以左對齊的方式來顯示文本,并且不進行文本的自動換行。超出控件右邊界的文本將被裁去。默認值為假。Simple禁止置Align text屬性和No wrap樣式。在該屬性為真的情況下,靜態(tài)文本控件中的文本不會被自動換行,也不會被裁去。默認值為假。Notify決定控件在被單擊時是否通知父窗口。默認值為假。Sunken使靜態(tài)文本控件看上去有下凹的感覺。默認值為假。Border給文本控件創(chuàng)建邊框。默認值為假。2. Picture Control(補充) 用來顯示邊框、矩形、或位圖等圖形。編輯時,首先必須創(chuàng)建位圖或圖標資源,即要插入一個Bitmap(位圖

22、)或Icon(圖標)。主要用處:顯式圖片或者設置窗口背景圖片。操作步驟如下:1. 添加Picture Control控件,修改Type屬性為Bitmap或者Icon.2. 利用Resouce View創(chuàng)建新圖片或者引入已有圖片。3. 在Image屬性中選擇圖片。修改Type屬性選擇Image【例4Picture】圖片控件的使用。注意:Tab順序決定重疊顯示的效果。建議把所有功能都完善以后,最后添加背景圖片,并修改Tab順序 3. Group Box(補充)將同組信息圍成一組。 MFC的CEdit類封裝了編輯框(Edit Box),編輯框又稱文本框或編輯控件,也是一種常用的控件。編輯框一般與靜態(tài)

23、文本控件一起使用,用于數(shù)據(jù)的輸入和輸出。 4.5.2 常用控件CEdit類控件編輯框屬性: 自動水平滾動左對齊僅允許輸入數(shù)字密碼只讀多行顯示若選擇“多行顯示”屬性為True,則必須將Auto HScroll屬性由True改為False!編輯框的基本操作 利用MFC的CEdit類提供的成員函數(shù)可以實現(xiàn)編輯框的各種操作。編輯控件的默認模式是在一行內顯示所有編輯文本。下表介紹了通用CEdit類的方法。編輯框的通知消息 【例4_Static+Edit】靜態(tài)文本和編輯控件的使用。CButton類控件包括按鍵按鈕、單選按鈕、復選框等類型在被按下時會立即執(zhí)行某個命令,也被稱為命令按鈕 用于在一組互相排斥的選

24、項中選擇其中一項用于在一組選項中選擇其中一項或多項使一組控件關聯(lián)起來,經常與一組單選按鈕或復選框一起使用4.5.2 常用控件CButton類控件 是最常使用的控件之一,主要用于確定某項操作??梢酝ㄟ^Style標簽頁設置一些與控件風格有關的屬性,不同的控件所設置的屬性不相同。 通過雙擊按鍵或者通過“Control Event”添加響應函數(shù)。 1. 按鍵按鈕添加響應函數(shù) 由一個圓圈和緊隨其后的文本標題組成,當它被選中時,圓圈中就標上一個黑點。 通常將一組單選按鈕放在一個組框控件中,在一組單選按鈕中,第一個(Tab鍵順序)按鈕最重要,其ID值可用于在對話框中為控件建立關聯(lián)的成員變量。必須為同組中的第

25、一個單選按鈕設置Group屬性,而同組的其他單選按鈕不可再設置Group屬性。 2單選按鈕(補充) 屬于同一組的單選按鈕擁有同樣的ID值??梢詾槊拷M單選按鈕設置值類型的成員變量,該成員變量為int型,表示所選按鈕在組中的序號,序號從0開始。 例如:若選擇第1項則返回0,選擇第3項則返回2,直至返回n-1。 另外還可通過IsDlgButtonChecked()函數(shù)來判斷選項是否被選中,該函數(shù)參數(shù)為選項的ID值。該函數(shù)返回BOOL型值,為TRUE表示被選中,為FALSE表示為被選中。 由一個空心方框和緊隨其后的文本組成,當它被選中時,空心方框中就加上一個“”或“”標記。不同于單選按鈕,在一組復選框

26、中每次可以同時選擇多項。 復選框的值類型成員變量類型為BOOL型,若返回TRUE表示被選中,若為FALSE表示未被選中。 同樣可通過IsDlgButtonChecked()函數(shù)來判斷選項是否被選中。 3復選按鈕(補充)按鈕控件的基本操作【例4_Button】按鈕類的使用。Windows提供如下幾種列表類型控件:列表框(CListBox類)、組合框(CComboBox類)、列表視圖控件和樹視圖控件。其中列表框是一種最簡單的列表類型控件。常用來顯示類型相同的一系列清單,如文件、字體和用戶等。 4.5.2 常用控件列表類型控件列表框的風格按性質來劃分,列表框風格有單選、多選、擴展多選以及非選等四種類

27、型。 允許排序選擇類型允許多列顯示一般情況下列表控件的屬性不需進行修改,采用默認形式即可。設置列表框中選項的選中方式。有4個選項:Single,表示在給定的選項中,至多有一個被選中;Multiple,表示可以有多個選項被選中,但忽略Shift鍵和Ctrl鍵;Extended,允許選擇多個選項,在選擇時,可以使用Shift鍵和Ctrl鍵;None,不允許選擇任何選項。列表框的基本操作 其中AddString,InserString,DeleteString,FindString,GetCurSel,SetCurSel,GetText函數(shù)最為常用相關函數(shù)用法:(1)列表類對象.AddString(

28、_T(“指定字符串”);/在列表框的尾部添加在指定字符串。(2)列表類對象.InsertString(nIndex,_T(“指定字符串”);/在列表框的標號為nIndex的位置添加在指定字符串。(3)int nIndex=列表類對象.GetCurSel(); /得到當前所選項的標號。(4)列表類對象.DeleteString(nIndex) /刪除指定列表標號的內容。(5)int nIndex=列表類對象.FindString(-1,_T(“指定字符串”); /從-1(列表起始位置開始查找指定字符串,返回該字符串的位置,若查無此項,則返回LB_ERR)。(6)列表類對象.SetCurSel(n

29、Index); /將列表項定位在nIndex位置(7)列表類對象.GetText(nIndex,str);/將nIndex位置的內容取出賦給str字符串。 列表框的通知消息 【例4_List】列表類的使用。組合框的屬性 組合框控件是把編輯框和列表框控件組合起來的一類控件。按風格特征,可把組合框分為3類:簡單組合框、下拉式組合框和下拉式列表框。類型數(shù)據(jù)4.5.2 常用控件CComboBox類控件1簡單組合框(Simple) 顯示一個編輯控件和列表框。該列表框總是可見的。當列表框包含的選項太多,顯示不下時,將使用一個滾動條在整個列表框中滾動。2下拉式組合框(Dropdown) 除了包含一個編輯框和

30、列表框外,還包含一個下拉按鈕。僅當單擊下拉按鈕時才出現(xiàn)列表框。編排控件時單擊下拉按鈕,當光標變成“ ”形狀時,可以調整程序運行后列表框部分顯示的大?。▎螕粝吕粹o),如圖所示。3下拉式列表框(DropList) 與下拉式組合框相似,只有被用戶打開時,才顯示列表框。同時,編輯框只能顯示選中的選項,而不允許用戶輸入。因此,用戶只能從列表框中選擇選項。 組合框大部分屬性與編輯框或列表框相關的屬性有相同的意義,但它有一個新的功能屬性,即可以通過組合框控件屬性對話框的Data選項卡添加初始的列表項,如下圖所示。 注意,每輸入完一個列表項,按下“;”鍵后才能換行輸入下一項。組合框的基本操作 組合框的操作可

31、以分為兩類:對組合框中的列表框進行操作和對組合框的編輯控件進行操作。組合框的通知消息 在組合框的通知消息中,有的是列表框發(fā)出的,有的是編輯框發(fā)出的。 【例4_ComboBox】組合框類的使用。 在樹形控件中每一個結點都有一個句柄(HTREEITEM),同時添加結點時必須提供的參數(shù)是該結點的父結點句柄,(其中根Root結點只有一個,既不可以添加也不可以刪除)利用InsertItem可以添加一個結點,函數(shù)原形:HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter =

32、TVI_LAST )pszItem為顯示的字符,hParent代表父結點的句柄,當前添加的結點會排在hInsertAfter表示的結點的后面,返回值為當前創(chuàng)建的結點的句柄。 第三個參數(shù)可不初始化。例如:HTREEITEM m_root1=m_Tree.InsertItem(_T(計算機),TVI_ROOT );4.5.3 高級控件樹形控件TreeCtrl樹形控件的屬性 是否擁有擴展按鈕CTreeCtrl成員函數(shù):HTREEITEM GetRootItem( );得到根結點。HTREEITEM GetChildItem( HTREEITEM hItem );得到子結點。 HTREEITEM Ge

33、tPrevSiblingItem/GetNextSiblingItem( HTREEITEM hItem );得到指明結點的上/下一個兄弟結點。 HTREEITEM GetParentItem( HTREEITEM hItem );得到父結點。HTREEITEM GetSelectedItem();得到所選擇的結點的句柄。LPCTSTR GetItemText(HTREEITEM *tree);得到指定結點的結點文本信息,返回一個字符串。CTreeCtrl通知消息:TVN_SELCHANGED 在所選中的結點發(fā)生改變后發(fā)送。TVN_ITEMEXPANDED 在某結點被展開后發(fā)送。TVN_BEG

34、INLABELEDIT 在開始編輯結點字符時發(fā)送。 TVN_ENDLABELEDIT 在結束編輯結點字符時發(fā)送。TVN_GETDISPINFO 在需要得到某結點信息時發(fā)送?!纠?_Tree】樹形視圖類的使用。參考代碼: /信息初始化HTREEITEM m_root1=m_Tree.InsertItem(_T(計算機),TVI_ROOT );HTREEITEM m_root2=m_Tree.InsertItem(_T(基礎學科),TVI_ROOT );HTREEITEM m_root3=m_Tree.InsertItem(_T(外語),TVI_ROOT );HTREEITEM m_h11=m_T

35、ree.InsertItem(_T(軟件),m_root1 );HTREEITEM m_h12=m_Tree.InsertItem(_T(硬件),m_root1);HTREEITEM m_h111=m_Tree.InsertItem(_T(軟件工程),m_h11 );HTREEITEM m_h112=m_Tree.InsertItem(_T(數(shù)據(jù)庫),m_h11 );HTREEITEM m_h113=m_Tree.InsertItem(_T(網絡),m_h11 );HTREEITEM m_h21=m_Tree.InsertItem(_T(數(shù)學),m_root2 );HTREEITEM m_h2

36、2=m_Tree.InsertItem(_T(物理),m_root2 );HTREEITEM m_h31=m_Tree.InsertItem(_T(英語),m_root3 );HTREEITEM m_h32=m_Tree.InsertItem(_T(日語),m_root3 );HTREEITEM m_h33=m_Tree.InsertItem(_T(俄語),m_root3 );/信息獲取HTREEITEM hp;hp=m_Tree.GetSelectedItem();m_edit=m_Tree.GetItemText(hp);UpdateData(false);Tab屬性頁控件可以在一個窗口中

37、添加不同的頁面,然后在頁選擇發(fā)生改變時得到通知。 效果和屬性對話框相似。4.5.3 高級控件標簽TabCtrl添加頁面的函數(shù)為: BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem為添加頁面位置,從零開始,lpszItem為頁選擇位置上顯示的文字。此外CTabCtrl還提供了一些函數(shù)用于得到/修改控件的狀態(tài)。 int GetCurSel( )/int SetCurSel( int nItem );用于得到/設置當前被選中的頁位置。 BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于刪

38、除指定/所有頁面。 void RemoveImage( int nImage );用于刪除某頁選擇位置上的圖標。 對于列表控件的通知消息為: TCN_SELCHANGE在當前頁改變后發(fā)送。TCN_SELCHANGING在當前頁改變時發(fā)送可以通過返回TRUE來禁止頁面的改變。 為TabCtrl控件添加頁面步驟: 添加對話框,作為獨立的頁面,并設置其屬性: Border:none Style :Child 為每個對話框關聯(lián)對話框類,并在主對話框中創(chuàng)建新增對話框類的對象,如:CDlg1 m_mm1;CDlg2 m_mm2; 在主對話框中添加TabCtrl控件,并為其關聯(lián)Control類型的成員變量m_tab。為TabCtrl控件添加頁面步驟: 在主對話框的OnInitDialog函數(shù)中進行初始化設置:如:m_tab.InsertItem (0,_T(姓名); m_tab.InsertItem (1,_T(學號); m_mm1.Create (IDD_NAME,&m_tab); m_mm2.Create (IDD_NUMBER,&m_ta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論