杜青
摘要:為了便于學(xué)生了解和掌握MFC應(yīng)用程序中控件的使用,設(shè)計(jì)了一個(gè)數(shù)字三角形案例。通過案例,學(xué)生可以更直觀地學(xué)習(xí)控件的創(chuàng)建、屬性設(shè)置、消息映射、調(diào)用控件類成員函數(shù)操作控件以及改變控件背景色的方法。采用這種案例式教學(xué)方法進(jìn)行課堂教學(xué),使單調(diào)、抽象的知識(shí)具體化、形象化,提高了學(xué)生的學(xué)習(xí)興趣,取得了較好的教學(xué)效果。
關(guān)鍵詞: MFC;控件;教學(xué)案例
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)35-0114-03
Teaching Case Design on Controls in MFC Application Programs
DU Qing
主界面中輸出數(shù)字三角形的控件可以是靜態(tài)文本控件、編輯框控件或列表框控件。程序開始運(yùn)行時(shí),控件中顯示內(nèi)容為空。在右側(cè)下方的編輯框控件中輸入數(shù)字三角形的行數(shù)10,并點(diǎn)擊“開始”按鈕,則在中間控件中按照一定的時(shí)間間隔依次輸出1、2、……、55。
點(diǎn)擊“開始”按鈕的消息響應(yīng)函數(shù)代碼如下:
3 在控件中輸出數(shù)字三角形
3.1 在靜態(tài)文本控件中輸出數(shù)字三角形
靜態(tài)文本控件一般用作標(biāo)簽,顯示提示信息。為了使靜態(tài)文本控件具有邊框及下沉屬性,要將控件的Client Edge和Sunken屬性設(shè)置為true。
由于所有靜態(tài)控件的默認(rèn)ID均為IDC_STATIC,而當(dāng)靜態(tài)控件取默認(rèn)ID時(shí),無法對(duì)控件進(jìn)行操作,所以若要在靜態(tài)文本控件中輸出數(shù)字三角形,就必須改變控件的默認(rèn)ID,例如將ID改為IDC_STATIC1。
在WM_PAINT消息的消息響應(yīng)函數(shù)OnPaint中,增加輸出數(shù)字三角形的代碼如下:
程序運(yùn)行結(jié)果如圖1所示。
3.2 在編輯框控件中輸出數(shù)字三角形
編輯框控件既可以接收用戶輸入的數(shù)據(jù),也可輸出信息給用戶。為了使編輯框控件能夠輸出多行文本,要將控件的Multiline屬性設(shè)置為true。
在編輯框控件中輸出數(shù)字三角形,一種方法是采用與靜態(tài)控件相同的方式,即調(diào)用SetWindowText函數(shù)實(shí)現(xiàn),另一種方法是通過增加與控件關(guān)聯(lián)的值類別變量,再調(diào)用UpdateData函數(shù),將控件變量數(shù)據(jù)顯示在編輯框控件中,從而實(shí)現(xiàn)數(shù)字三角形的輸出。
當(dāng)采用第二種方法時(shí),首先要為編輯框控件IDC_EDIT1添加一個(gè)值類別CString類型的控件變量edit1,再在WM_PAINT消息的消息響應(yīng)函數(shù)OnPaint中,增加輸出數(shù)字三角形的代碼如下:
程序運(yùn)行結(jié)果也如圖1所示。
3.3 在列表框控件中輸出數(shù)字三角形
列表框控件可以提供多個(gè)列表項(xiàng)供用戶選擇,列表項(xiàng)的增加可以通過調(diào)用CListBox類的成員函數(shù)AddString實(shí)現(xiàn)。為了使增加的列表項(xiàng)不自動(dòng)排序,要將控件的sort屬性設(shè)置為false。
為了在列表框中輸出數(shù)字三角形,首先為列表框控件IDC_LIST1添加一個(gè)控件類別CListBox類型的控件變量list1,在WM_PAINT消息的消息響應(yīng)函數(shù)OnPaint中,重復(fù)調(diào)用AddString函數(shù)依次在列表框中加入多個(gè)列表項(xiàng),每個(gè)列表項(xiàng)是數(shù)字三角形的一行。具體代碼如下:
如果要改變的是編輯框控件或列表框控件的背景色,只需將以上代碼中的case CTLCOLOR_STATIC改為case CTLCOLOR_EDIT或case CTLCOLOR_LISTBOX,并將IDC_STATIC1改為IDC_EDIT1或IDC_LIST1即可。另外如果要改變按鈕控件的背景色,需要將按鈕控件的Owner Draw屬性設(shè)置為true。
5 結(jié)束語
為了便于學(xué)生了解和掌握MFC應(yīng)用程序中控件的使用,設(shè)計(jì)了一個(gè)數(shù)字三角形案例。通過案例,學(xué)生可以更直觀的學(xué)習(xí)控件的創(chuàng)建、屬性設(shè)置、消息映射、調(diào)用控件類成員函數(shù)操作控件以及改變控件背景色的方法。采用這種案例式教學(xué)方法進(jìn)行課堂教學(xué),使單調(diào)、抽象的概念具體化、形象化,提高了學(xué)生的學(xué)習(xí)興趣,取得了較好的教學(xué)效果。
參考文獻(xiàn):
[1] 鄭阿奇,丁有和.Visual C++教程(第2版)[M].北京:清華大學(xué)出版社,2011.
[2] 黃維通,賈續(xù)涵. Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)(第三版) [M].北京:清華大學(xué)出版社,2011.
[3] 廖雷,袁璟,陳立. C語言程序設(shè)計(jì)基礎(chǔ)[M].北京:高等教育出版社,2004.