簡單學(xué)生管理系統(tǒng)的的講義ppt課件_第1頁
簡單學(xué)生管理系統(tǒng)的的講義ppt課件_第2頁
簡單學(xué)生管理系統(tǒng)的的講義ppt課件_第3頁
簡單學(xué)生管理系統(tǒng)的的講義ppt課件_第4頁
簡單學(xué)生管理系統(tǒng)的的講義ppt課件_第5頁
已閱讀5頁,還剩135頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、簡單學(xué)生管理系統(tǒng)的實現(xiàn)指導(dǎo)教師: 簡單學(xué)生管理系統(tǒng)的實現(xiàn)n1、題目n2、相關(guān)MFC的知識一、題目n名稱:簡單學(xué)生管理系統(tǒng)的實現(xiàn)n程序框架:基于對話框或控制臺的應(yīng)用程序。n存儲介質(zhì):文件學(xué)號唯一)n類別 姓名 學(xué)號 年齡 系別 實驗室 發(fā)表文章nB張山 B098 23 電信學(xué)院nM測試 Y094 23 電信學(xué)院lab3nM周正 Y093 23 電信學(xué)院lab2nD王丹 0102 29 電信學(xué)院LAB9 20一、題目n程序功能:n 1. 能夠分類顯示學(xué)生信息n 2. 能夠增加、刪除、編輯學(xué)生信息n 3. 能夠按照學(xué)號或姓名查詢學(xué)生信息 n 4. 能夠分類統(tǒng)計(可選)、排序(可選)n 5. 能夠保存

2、學(xué)生信息二、相關(guān)MFC的知識n1、創(chuàng)建基于對話框的工程n2、對話框的使用n3、控件的使用2.1創(chuàng)建基于對話框的程序n步驟n 1、選擇工程類別MFC AppWizard(exe)n 2、選擇應(yīng)用程序類別 Dialog Basedn 3、選擇應(yīng)用程序外觀 n 4、選擇應(yīng)用程序風(fēng)格n 5、確認(rèn)相關(guān)類名稱n 6、完成,顯示主窗口1、選擇工程類別MFC AppWizard(exe)選擇MFC AppWizard(exe)2、選擇應(yīng)用程序類別 Dialog Based選擇Dialog Based 3、選擇應(yīng)用程序外觀 去掉該復(fù)選框4、選擇應(yīng)用程序風(fēng)格5、確認(rèn)相關(guān)類名稱6、完成,顯示主窗口控件面版主對話框運(yùn)

3、行MFC基于對話框的應(yīng)用程序n包含兩個主要的類n 1應(yīng)用程序類n 2主對話框類系統(tǒng)自動生成的代碼說明n1、CStep1App類n 應(yīng)用程序類,該類中包含程序的入口函數(shù)InitInstance(),類似于main()函數(shù)。n BOOL CStep1App:InitInstance()n n CStep1Dlg dlg; /主對話框類n m_pMainWnd = &dlg;n n 對應(yīng)的文件Step1.h和Step1.cpp。工程名稱Step1系統(tǒng)自動生成的代碼說明n2、CStep1Dlg類n 主對話框類,是缺省應(yīng)用程序的主窗口,其中包含三個主要函數(shù):n /數(shù)據(jù)交換的支持函數(shù),用于控件的操

4、作n void DoDataExchange(CDataExchange* pDX)n /對話框初始化函數(shù),在窗口彈出之前執(zhí)行n BOOL OnInitDialog()n /屏幕刷新函數(shù)n void OnPaint() n 對應(yīng)的文件Step1Dlg.h和Step1Dlg.cpp。右應(yīng)用程序類調(diào)用2.2 對話框的使用n對話框的組成n 1、對話框資源n 描述對話框的大小、風(fēng)格、位置等特征。n 2、對話框類n CDialog類,用來提供編程接口1、對話框資源對話框資源入口Resource視圖Class視圖File視圖例子n如何新建一個對話框?n 1、新建對話框資源n 2、設(shè)置對話框?qū)傩詎 3、生成

5、對應(yīng)的對話框類n 4、測試對話框1、新建對話框資源1、點(diǎn)擊鼠標(biāo)右鍵2、選擇Insert Dialog1、新建對話框資源資源ID對話框外觀 點(diǎn)擊鼠標(biāo)右鍵,選擇“屬性”,設(shè)置對話框的屬性。2、設(shè)置對話框?qū)傩匀笔D字體標(biāo)題是否有菜單風(fēng)格邊框窗口右上角3、生成對應(yīng)的對話框類 在對話框上點(diǎn)擊鼠標(biāo)右鍵,選擇classwizard菜單項,彈出新建對話框類窗口。點(diǎn)擊OK3、生成對應(yīng)的對話框類自定義類名對應(yīng)源文件基類名 資源ID必須與前面對話框?qū)傩灾性O(shè)置的一致3、生成對應(yīng)的對話框類n注意n 如果彈出出錯信息,比如:無法打開XX文件之類的錯誤提示,那么n 1、關(guān)閉錯誤提示框,n 2、找到工程所在磁盤目錄,刪除d

6、ialog1.h和dialog1.cpp文件n 3、在前一頁ppt顯示的窗口上再次點(diǎn)擊“確定即可。4、系統(tǒng)生成的對話框類代碼資源ID和類的對應(yīng)Class視圖5、用主對話框彈出新建的對話框 選中按鈕控件,將其拖入主對話框中 選擇主對話框 ID,進(jìn)入主對話框5、用主對話框彈出新建的對話框n雙擊鼠標(biāo)左鍵,彈出下列對話框n 鼠標(biāo)點(diǎn)擊事件的處理函數(shù),當(dāng)點(diǎn)擊按鈕Button1時,觸發(fā)該事件點(diǎn)擊“確定”5、用主對話框彈出新建的對話框添加代碼5、用主對話框彈出新建的對話框添加代碼5、添加代碼說明1、在主對話框中添加新建對話框所在的頭文件 #include dialog1.h “ 新建對話框類的聲明在dialo

7、g1.h 中,實現(xiàn)在dialog1. Cpp中,當(dāng)主對話框類藥使用CDialog1類時,必須引入CDialog1類的頭文件。 5、添加代碼說明2、在主對話框的OnButton1函數(shù)中添加 CDialog1 dlg1; if(dlg1.DoModal()=IDOK) AfxMessageBox(點(diǎn)擊OK按鈕); else AfxMessageBox(點(diǎn)擊Cancle按鈕); DoModal()是對話框類的成員函數(shù),用來彈出對話框,該函數(shù)的返回值為按鈕資源ID,用來說明窗口使用OK還是Cancle按鈕來關(guān)閉的。6、測試運(yùn)行點(diǎn)擊按鈕彈出新建對話框?qū)υ捒蚍诸?、有模式對話框 比如設(shè)置屬性對話框,一般包

8、括OK和Cancle按鈕,使用DoModal()函數(shù)調(diào)用,利用其返回值判斷該窗口由哪個按鈕關(guān)閉。我們使用有模式對話框?qū)崿F(xiàn)學(xué)生管理系統(tǒng)。2、無模式對話框 比如查找對話框.2.3常用控件資源靜態(tài)圖片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合框列表框列表視圖樹形視圖標(biāo)簽二、常用控件資源靜態(tài)圖片樹形視圖按鈕復(fù)選框單選框組合框編輯框組框靜態(tài)文本1、靜態(tài)控件n靜態(tài)控件是用來顯示一個字符、框、圖標(biāo)、位圖等,一般不接受用戶的輸入,也不產(chǎn)生任何事件。n 1靜態(tài)圖片n 2靜態(tài)文本n 3組框1、靜態(tài)控件靜態(tài)圖片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合框列表框列表視圖樹形視圖標(biāo)簽靜態(tài)圖片n適用范圍n 一般用于應(yīng)用程序的lo

9、go圖片n使用步驟n 1、添加圖片資源n 2、將控件和圖片資源關(guān)聯(lián) 1)添加圖片資源Resource點(diǎn)擊鼠標(biāo)右鍵,選擇Insert 1)添加圖片資源彈出添加資源窗口選擇bitmap用于手繪圖案選擇已有圖案 2)將控件和圖片資源關(guān)聯(lián)1、用鼠標(biāo)選中“靜態(tài)圖片”,并拖入對話框中2、點(diǎn)擊鼠標(biāo)右鍵,彈出屬性對話框類型選擇Bitmap資源ID2)將控件和圖片資源關(guān)聯(lián)靜態(tài)文本和組框n適用范圍n 一般用于靜態(tài)的說明文字和邊框,與其他控件共同使用。n使用步驟n 1、將控件拖入對話框n 2、設(shè)置屬性2、編輯框靜態(tài)圖片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合框列表框列表視圖樹形視圖標(biāo)簽2、編輯框n適用范圍n 一般用于

10、可編輯的單行或多行文字。n使用步驟n 1、將控件拖入對話框n 2、設(shè)置屬性n 3、編程對其進(jìn)行控制1、將控件拖入對話框2、設(shè)置編輯框?qū)傩远嘈形谋撅@示*只讀3、編程控制編輯框n編輯框控件有兩部分組成n 1編輯框資源n 包括編輯框的大小、位置、外觀等,使用屬性設(shè)置即可。n 2編輯框類n 類名: CEdit 3、編程控制編輯框n控件變量n 當(dāng)編輯框被拖入窗口中時,編輯框資源就存在了,如果想要編程控制編輯框,就需要為資源關(guān)聯(lián)一個對應(yīng)類型的變量,編程中通過操作這個對應(yīng)變量才能操作控件,這個變量稱為控件變量。3、編程控制編輯框n如何設(shè)置控件變量?n 點(diǎn)擊主菜單“view”-”ClassWizard”,彈出

11、窗口,在這個窗口中的第二個tab頁“ Menber variable中設(shè)置。n 一般來說,一種控件資源可以對應(yīng)不同類型的控件變量,但只能選擇其中的一種類型,生成一個控件變量。 n 下面的例1和例2分別將編輯框控件對應(yīng)不同的控件變量。 例1n設(shè)置編輯框的文字并使其變灰n 1、設(shè)置控件變量n 2、在窗口初始化時添加代碼n 1、設(shè)置控件變量3點(diǎn)擊添加變量5 選擇Control1、點(diǎn)擊主菜單“view”-”ClassWizard”,彈出窗口2、選擇控件ID4 自定義變量名1、設(shè)置控件變量控件變量設(shè)置完畢1、設(shè)置控件變量 控件變量相當(dāng)于所在對話框類的一個數(shù)據(jù)成員,本例中,在CStep1Dlg的類聲明中,

12、系統(tǒng)自動添加代碼如下: / Dialog Data/AFX_DATA(CStep1Dlg)enum IDD = IDD_STEP1_DIALOG ;CEditm_edit;/AFX_DATA 所有和控件映射的變量均在此1、設(shè)置控件變量 本例中,在CStep1Dlg的成員函數(shù)DoDataExchange中,系統(tǒng)自動添加代碼如下:void CStep1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStep1Dlg)DDX_Control(pDX, IDC_EDIT1, m_edit)

13、;/AFX_DATA_MAP控件ID映射變量2、在窗口初始化時添加代碼BOOL CStep1Dlg:OnInitDialog()/ TODO: Add extra initialization herem_edit.SetWindowText(welcome); m_edit.EnableWindow(false);return TRUE; / return TRUE unless you set the focus to a control自己添加的代碼代碼說明nCEdit的成員函數(shù)n /設(shè)置/獲取編輯框文字LPTSTR是字符串指針類型n SetWindowText(LPTSTR);n Ge

14、tWindowText(LPTSTR);n /編輯框是否變灰。false變灰不可用,true正常狀態(tài)n EnableWindow(BOOL);n /編輯框是否可見,SW_SHOW可見,SW_HIDE隱藏n ShowWindow(int);運(yùn)行有文字,變灰3、編輯框的控制n對話框數(shù)據(jù)交換機(jī)制對話框數(shù)據(jù)交換機(jī)制n DDX(Dialog Data exchange) DDX(Dialog Data exchange),用,用于控件初始化和獲取用戶輸入的數(shù)據(jù)。于控件初始化和獲取用戶輸入的數(shù)據(jù)。n 對話框數(shù)據(jù)驗證對話框數(shù)據(jù)驗證DDV(Dialog data DDV(Dialog data validat

15、ion)validation),用于對話框中輸入數(shù)據(jù)的,用于對話框中輸入數(shù)據(jù)的合法性檢驗。合法性檢驗。3、編輯框的控制n通常使用UpdateData函數(shù)進(jìn)行數(shù)據(jù)傳遞。n UpdateData(true):n 將控件中顯示的內(nèi)容保存到對應(yīng)的控件變量中n UpdateData(false):n 將控件變量的值顯示在控件中例2n使用DDX和DDV控制編輯框的內(nèi)容和長度 n 1、添加一個編輯框n 2、設(shè)置對應(yīng)的控件變量。n 3、 在OnInitDialog()中添加新代碼n 4、 運(yùn)行1、將編輯框拖入窗口2、設(shè)置控件變量增加新的變量選擇Value字符串選擇CString整型選擇int、UINT、lon

16、g等1、變更控件變量設(shè)置編輯框內(nèi)容的長度系統(tǒng)生成的代碼 / Dialog Data/AFX_DATA(CStep1Dlg)enum IDD = IDD_STEP1_DIALOG ;CEditm_edit; CString m_edit2;/AFX_DATA生成的控件變量構(gòu)造函數(shù)中的生成代碼CStep1Dlg:CStep1Dlg(CWnd* pParent /*=NULL*/): CDialog(CStep1Dlg:IDD, pParent)/AFX_DATA_INIT(CStep1Dlg)m_edit2 = _T();/AFX_DATA_INIT/ Note that LoadIcon doe

17、s not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);數(shù)據(jù)交換函數(shù)中的生成代碼void CStep1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStep1Dlg)DDX_Control(pDX, IDC_EDIT1, m_edit); DDX_Text(pDX, IDC_EDIT2, m_edit2);DDV_MaxChars(pDX, m_edi

18、t2, 4);/AFX_DATA_MAP控件ID映射變量最大字符數(shù)2、 在OnInitDialog()中添加新代碼BOOL CStep1Dlg:OnInitDialog()/ TODO: Add extra initialization here m_edit.SetWindowText(welcome); m_edit.EnableWindow(false);m_edit2 = 123;UpdateData(false);return TRUE; / return TRUE unless you set the focus to a control3、 運(yùn)行用戶只能鍵入4個字符編輯框?qū)?yīng)的控

19、件變量n控件變量的類型n Control:n 對應(yīng)控件資源的全部,不僅可以通過Control類型的變量控制控件的內(nèi)容,還可以控制控件的狀態(tài),比如是否可見、是否變灰等。此時,通過控件類CEdit的成員函數(shù)控制控件。n CString、int 等:n 對應(yīng)控件資源的內(nèi)容,僅可以通過控件變量控制控件的內(nèi)容,不可以控制控件的狀態(tài)。此時,只能通過UpdateData()函數(shù)控制控件。3、編輯框的消息機(jī)制n控件可以響應(yīng)鼠標(biāo)、鍵盤的操作,這就是消息機(jī)制,用戶不同的動作,對應(yīng)不同的消息類別,比如編輯框控件可以響應(yīng): n EN_CHABGE: 內(nèi)容改變消息n EN_SETFOCUS: 獲取焦點(diǎn)消息n EN_MA

20、XTEXT: 插入最多字符消息3、編輯框的消息機(jī)制n對應(yīng)每一種消息,可以生成不同的消息處理函數(shù),當(dāng)對應(yīng)的鼠標(biāo)、鍵盤事件發(fā)生時,系統(tǒng)自動調(diào)用相應(yīng)的消息處理函數(shù),通過主菜單View-ClassWizard彈出的窗口,“Message Maptab頁可以設(shè)置生成消息處理函數(shù),如下圖所示。3、編輯框的消息機(jī)制選擇控件控件消息例3:消息機(jī)制控制編輯框n完成功能:當(dāng)編輯框獲取焦點(diǎn)時,彈出警告框n 步驟:n 1、選擇IDC_EDIT2的EN_CHANGE消息n 2、系統(tǒng)自動產(chǎn)生對于該消息的消息映射,并生成處理函數(shù)n 3、在處理函數(shù)中,添加彈出警告框的代碼1、選擇IDC_EDIT1的EN_CHANGE消息2

21、選擇控件消息3 添加處理函數(shù)1選擇控件4 生成對應(yīng)的處理函數(shù)2消息處理函數(shù)設(shè)置完畢點(diǎn)擊3 添加代碼添加代碼添加代碼的說明void CStep1Dlg:OnChangeEdit1() / TODO: Add your control notification handler code here/將從鍵盤鍵入編輯框的內(nèi)容保存到對應(yīng)的變量m_edit2中。UpdateData(true); /將變量m_edit2中的內(nèi)容顯示在提示框中AfxMessageBox(m_edit2);4 運(yùn)行系統(tǒng)自動生成消息映射系統(tǒng)在CStep1Dlg類的實現(xiàn)中添加消息映射 BEGIN_MESSAGE_MAP(CStep

22、1Dlg, CDialog)/AFX_MSG_MAP(CStep1Dlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)/AFX_MSG_MAPEND_MESSAGE_MAP()控件ID消息名稱處理函數(shù)消息處理函數(shù)在CStep1Dlg類聲明中添加消息處理函數(shù)/ Generated message map functions/AFX_MSG(CStep1Dlg)virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQ

23、ueryDragIcon();afx_msg void OnChangeEdit1();/AFX_MSGDECLARE_MESSAGE_MAP()3、按鈕靜態(tài)圖片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合框列表框列表視圖樹形視圖標(biāo)簽3、按鈕n常見的按鈕分為三類n 1、按鈕n 2、單選框n 3、復(fù)選框n消息映射n BN_CLICKEDn BN_DOUBLE_CLICKED外觀IDC_RADIO1IDC_RADIO2IDC_CHECK1IDC_CHECK2IDC_CHECK3IDC_BUTTON1例4:如何操作單選框和復(fù)選框n設(shè)置并獲取單選框和復(fù)選框的值n 1) 設(shè)置控件變量n 2) 添加按鈕的消息映

24、射n 3) 添加單選框的消息映射n 4) 在按鈕和單選框的消息處理函數(shù)中添加代碼n 5) 運(yùn)行1) 設(shè)置控件變量單選框必須選中Group去掉auto1) 設(shè)置控件變量2) 添加按鈕的消息映射3) 添加單選框的消息映射4) 在消息處理函數(shù)中添加代碼void CStep1Dlg:OnRadio1() m_radmale.SetCheck(true); m_radfemale.SetCheck(false);void CStep1Dlg:OnRadio2() m_radmale.SetCheck(false); m_radfemale.SetCheck(true);4) 在消息處理函數(shù)中添加代碼vo

25、id CStep1Dlg:OnButton1() CString str;if(m_radmale.GetCheck()m_radmale.GetWindowText(str);elsem_radfemale.GetWindowText(str);UpdateData(true);if(m_chk1) str+=“、游泳” ; if(m_chk2) str+=“、跑步” ;if(m_chk3) str+=“、打球” ;MessageBox(str,測試, MB_OKCANCEL);5) 運(yùn)行4、組合框靜態(tài)圖片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合框列表框列表視圖樹形視圖標(biāo)簽4、組合框n組合框控

26、件有三種風(fēng)格:n Simple:包含一個編輯框和總是顯示的列表框。n Drop Down:僅當(dāng)單擊下滾箭頭時才出現(xiàn)列表框。n Drop List:僅當(dāng)單擊下滾箭頭時才出現(xiàn)列表框。但是 沒有編輯功能,用戶只能選擇列表中已有的項。4、組合框n組合框的事件n CBN_SELCHANGE 如果選擇項改變n CBN_EDITCHANGE 如果編輯框種文字改變4、組合框類的成員函數(shù)1.獲取組合框中的項數(shù) int GetCount(); 2.獲取組合框中指定位置的文字 void GetLBText( int nIndex, CString& rString )4、組合框類的成員函數(shù)3.獲取/設(shè)置當(dāng)前

27、選擇項 SetCurSel(int index); int GetCurSel();4.添加/刪除文字項 int AddString(LPCTSTR lpszString ) int InsertString( int nIndex, LPCTSTR lpszString ); int DeleteString( UINT nIndex );4、組合框類的成員函數(shù)n5.從組合框中查詢指定字符串n int FindString( int nStartAfter,n LPCTSTR lpszString )n int FindStringExact( int nIndexStart, n LPCT

28、STR lpszFind )例5n向組合框添加數(shù)據(jù),并獲取所選的數(shù)據(jù)n 1、設(shè)置控件變量n 2、設(shè)置控件屬性n 3、在OnInitDialog()中添加初始化代碼n 4、添加組合框消息映射CBN_SELCHANGE n 5、在處理函數(shù)中添加代碼 1、設(shè)置控件變量2、設(shè)置控件屬性可以直接在添加數(shù)據(jù)CTRL+ENTER換行組合框風(fēng)格3、在OnInitDialog()中添加初始化代碼BOOL CStep1Dlg:OnInitDialog() m_combo1.AddString(第四項); m_combo1.InsertString(1,“第二項”); m_combo1.SetCurSel(3);

29、return TRUE; / return TRUE unless you set the focus to a control運(yùn)行測試4、添加組合框消息映射CBN_SELCHANGE 5、在處理函數(shù)中添加代碼void CStep1Dlg:OnSelchangeCombo1() / TODO: Add your control notification handler code hereint index = m_combo1.GetCurSel();CString str;m_combo1.GetLBText(index,str);AfxMessageBox(str);運(yùn)行5、樹形視圖靜態(tài)圖

30、片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合框列表框列表視圖樹形視圖標(biāo)簽5、樹形視圖IDC_TREE1Linesbutton設(shè)置控件屬性風(fēng)格常用樹形控件的事件n樹形控件n NM_CLICKEDn NM_RCLICKEDn NM_SETFOCUSn樹結(jié)點(diǎn)n TVN_SELCHANGEDn TVN_ITEMEXPANDEDn TVN_DELETEITEM樹形控件類的成員函數(shù)1、插入/刪除結(jié)點(diǎn) HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST );

31、BOOL DeleteItem( HTREEITEM hItem ); BOOL DeleteAllItems( );2、獲取選中的結(jié)點(diǎn) HTREEITEM GetSelectitem();樹形控件類的成員函數(shù)3、設(shè)置/獲取已知結(jié)點(diǎn)的標(biāo)題 CString GetItemText(HTREEITEM hitem) BOOL SetItemText( HTREEITEM hItem, LPCTSTR lpszItem );4、獲取結(jié)點(diǎn)之間的關(guān)系 BOOL ItemHasChildren(HTREEITEM hItem); HTREEITEM GetChildItem(HTREEITEM hItem

32、) HTREEITEM GetNextSiblingItem(HTREEITEM hItem) 樹形控件類的成員函數(shù)n5、結(jié)點(diǎn)展開/收縮nBOOL Expand( HTREEITEM hItem, UINT nCode );nncode的取值:n TVE_COLLAPSEn TVE_COLLAPSERESETn TVE_EXPANDn TVE_TOGGLE例6n添加并獲取選中的樹結(jié)點(diǎn)n 1) 設(shè)置控件變量n 2) 在OnInitDialog()初始化n 3) 添加樹形控件的消息映射n 4) 在消息處理函數(shù)中添加代碼n 5) 運(yùn)行1) 設(shè)置控件變量2) 在OnInitDialog()初始化BOO

33、L CStep1Dlg:OnInitDialog() HTREEITEM root = m_tree1.InsertItem(本科生);m_tree1.InsertItem(張三,root);m_tree1.InsertItem(李四,root); m_tree1.Expand(root,TVE_EXPAND); root = m_tree1.InsertItem(研究生);m_tree1.InsertItem(王單,root);m_tree1.InsertItem(丁一,root);3) 添加樹形控件的消息映射4) 在消息處理函數(shù)中添加代碼void CStep1Dlg:OnSelchange

34、dTree1(NMHDR* pNMHDR, LRESULT* pResult) NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;/ TODO: Add your control notification handler code hereHTREEITEM hitem = m_tree1.GetSelectedItem();m_edit = m_tree1.GetItemText(hitem);if(m_edit!=本科生 & m_edit!=研究生)UpdateData(false);*pResult = 0;5) 運(yùn)行和樹形控件結(jié)點(diǎn)對

35、應(yīng)例7:刪除當(dāng)前選中結(jié)點(diǎn)的所有孩子HTREEITEM hitem = m_tree1.GetSelectedItem();if (m_tree1.ItemHasChildren(hitem) HTREEITEM hNext; HTREEITEM hChild= m_tree1.GetChildItem(hitem); while (hChild!= NULL) hNext = m_tree1.GetNextSiblingItem( hChild); m_tree1.DeleteItem(hChild); hChild = hNext; 5、列表視圖靜態(tài)圖片編輯框靜態(tài)文本組框按鈕復(fù)選框單選框組合

36、框列表框列表視圖樹形視圖標(biāo)簽5、列表視圖的風(fēng)格iconsmalliconlistreport5、列表視圖的事件n列表控件n NM_CLICKEDn NM_RCLICKEDn NM_SETFOCUSn列表數(shù)據(jù)n LVN_ITEMCHANGEDn LVN_COLUMNCLICKn LVN_DELETEITEMn LVN_INSERTITEM5、列表視圖類的成員函數(shù)1、添加/刪除列 int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubIte

37、m = -1 ); BOOL DeleteColumn( int nCol );5、列表視圖類的成員函數(shù)2、添加/刪除數(shù)據(jù)int InsertItem( int nItem, LPCTSTR lpszItem );int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );BOOL DeleteItem( int nItem );BOOL DeleteAllItems( );5、列表視圖類的成員函數(shù)3、獲取列表中數(shù)據(jù) CString GetItemText( int nItem, int nSubItem); BOOL SetItemTe

38、xt( int nItem, int nSubItem, LPTSTR lpszText );4、列標(biāo)與圖標(biāo)關(guān)聯(lián) CImageList* SetImageList( CImageList* pImageList, int nImageList ); CImageList* GetImageList( int nImageList );5、列表視圖類的成員函數(shù)5、獲取列表中選中的行 POSITION GetFirstSelectedItemPosition( ); int GetNextSelectedItem( POSITION& pos );例8n如何使用列表框?n 1、新建一個基于對話框的工程,工程名稱 test略

溫馨提示

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

評論

0/150

提交評論