版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第第1414章章 按鈕控件與列表框控件按鈕控件與列表框控件CbuttonCbutton及及CBitmapButtonCBitmapButton類在類在MFC窗口類的層次結(jié)構(gòu)中的位置窗口類的層次結(jié)構(gòu)中的位置按鈕是最按鈕是最常見的控常見的控件之一件之一復(fù)選框復(fù)選框(Checkboxes)單選按鈕單選按鈕(Radiobuttons)下壓式按鈕下壓式按鈕(Pushbuttons)分組框分組框(Group boxes)常用于只有兩種完全常用于只有兩種完全相反狀態(tài)的情況下相反狀態(tài)的情況下適用于同一組屬性相適用于同一組屬性相同的數(shù)據(jù)中選一個(gè)數(shù)據(jù)同的數(shù)據(jù)中選一個(gè)數(shù)據(jù)適用于消息的發(fā)送適用于消息的發(fā)送沒有太多的
2、操作沒有太多的操作只是在窗口中劃只是在窗口中劃分區(qū)域范圍分區(qū)域范圍14.1 按鈕類與列表框類簡介按鈕類與列表框類簡介表表 14-1 CButton 類類中中按按鈕鈕特特有有的的樣樣式式 樣樣式式宏宏 說說明明 BS_3STATE 此此樣樣式式為為復(fù)復(fù)選選框框,但但是是方方框框可可以以被被選選中中,也也可可以以變變暗暗(表表明明復(fù)復(fù)選選框框無無效效) BS_AUTO3STATE 此此樣樣式式為為復(fù)復(fù)選選框框,但但是是方方框框可可以以被被選選中中,也也可可以以變變暗暗(表表明明復(fù)復(fù)選選框框無無效效),當(dāng)當(dāng)用用戶戶選選擇擇方方框框時(shí)時(shí),它它的的選選中中狀狀態(tài)態(tài)會(huì)會(huì)自自動(dòng)動(dòng)轉(zhuǎn)轉(zhuǎn)換換 B BS S_ _
3、A AU UT TO OC CH HE EC CK KB BO OX X 此此樣樣式式為為復(fù)復(fù)選選框框,當(dāng)當(dāng)用用戶戶選選擇擇方方框框時(shí)時(shí),它它的的選選中中狀狀態(tài)態(tài)會(huì)會(huì)自自動(dòng)動(dòng)轉(zhuǎn)轉(zhuǎn)換換 B BS S_ _A AU UT TO OR RI ID DI IO OB BU UT TT TO ON N 此此樣樣式式為為單單選選按按鈕鈕,當(dāng)當(dāng)用用戶戶選選中中圓圓圈圈時(shí)時(shí),按按鈕鈕自自動(dòng)動(dòng)顯顯示示自自己己被被選選中中的的狀狀態(tài)態(tài),同同時(shí)時(shí)使使其其它它具具有有相相同同樣樣式式的的同同組組的的單單選選按按鈕鈕處處于于未未被被選選中中的的狀狀態(tài)態(tài) BS_CHECKBOX 創(chuàng)創(chuàng)建建一一個(gè)個(gè)復(fù)復(fù)選選框框,默默認(rèn)認(rèn)情情
4、況況下下它它的的右右邊邊有有標(biāo)標(biāo)題題,當(dāng)當(dāng)與與 BS_LEFTTEXT一一起起使使用用時(shí)時(shí),標(biāo)標(biāo)題題在在左左邊邊 B BS S_ _D DE EF FP PU US SH HB BU UT TT TO ON N 創(chuàng)創(chuàng)建建一一個(gè)個(gè)下下壓壓式式按按鈕鈕 BS_GROUPBOX 創(chuàng)創(chuàng)建建一一個(gè)個(gè)帶帶標(biāo)標(biāo)題題的的分分組組框框 BS_LEFTTEXT 當(dāng)當(dāng)和和一一個(gè)個(gè)單單選選按按鈕鈕或或復(fù)復(fù)選選按按鈕鈕一一起起使使用用時(shí)時(shí),使使得得按按鈕鈕文文字字出出現(xiàn)現(xiàn)在在按按鈕鈕的的左左邊邊 BS_OWNERDRAW 創(chuàng)創(chuàng)建建自自定定義義按按鈕鈕, 當(dāng)當(dāng)按按鈕鈕視視覺覺被被改改變變時(shí)時(shí), MFC 自自動(dòng)動(dòng)調(diào)調(diào)用用
5、DrawItem()方方法法,在在使使用用 CBitmapButton 類類時(shí)時(shí),這這種種樣樣式式必必須須被被指指定定 BS_PUSHBUTTON 創(chuàng)創(chuàng)建建一一個(gè)個(gè)下下壓壓式式按按鈕鈕,用用戶戶單單擊擊此此按按鈕鈕時(shí)時(shí),向向系系統(tǒng)統(tǒng)發(fā)發(fā)送送 WM_COMMAND消消息息 BS_RADIOBUTTON 創(chuàng)創(chuàng)建建單單選選按按鈕鈕 表表 14-2 類類 CButton 的的方方法法 方方法法 說說明明 GetBitmap() 獲獲得得用用 SetBitmap()設(shè)設(shè)置置的的位位圖圖的的句句柄柄 GetButtonStyle() 獲獲得得有有關(guān)關(guān)按按鈕鈕控控件件樣樣式式的的信信息息 GetCheck(
6、) 獲獲得得按按鈕鈕控控件件選選中中的的狀狀態(tài)態(tài) GetCursor() 獲獲得得通通過過 SetCursor()設(shè)設(shè)置置的的光光標(biāo)標(biāo)圖圖像像的的句句柄柄 GetIcon() 獲獲得得由由 SetIcon()設(shè)設(shè)置置的的圖圖標(biāo)標(biāo)句句柄柄 GetState() 獲獲得得按按鈕鈕控控件件的的選選中中、選選擇擇和和聚聚焦焦?fàn)顮顟B(tài)態(tài) SetBitmap() 指指定定按按鈕鈕上上顯顯示示的的位位圖圖 SetButtonStyle() 改改變變按按鈕鈕樣樣式式 SetCheck() 設(shè)設(shè)置置按按鈕鈕控控件件的的選選中中狀狀態(tài)態(tài) SetCursor() 指指定定按按鈕鈕控控件件上上的的光光標(biāo)標(biāo)圖圖像像 Se
7、tIcon() 指指定定按按鈕鈕上上顯顯示示的的圖圖標(biāo)標(biāo) SetState() 設(shè)設(shè)置置按按鈕鈕控控件件的的選選擇擇狀狀態(tài)態(tài) MFC調(diào)用方法調(diào)用方法DrawItem()自動(dòng)在一個(gè)按鈕的用戶區(qū)上畫上位自動(dòng)在一個(gè)按鈕的用戶區(qū)上畫上位圖,即用戶可以自定義按鈕圖,即用戶可以自定義按鈕。有時(shí)必須調(diào)整位圖的尺寸大小,可以通過有時(shí)必須調(diào)整位圖的尺寸大小,可以通過SizeToContent()方法進(jìn)行調(diào)整方法進(jìn)行調(diào)整將對(duì)話框按鈕將對(duì)話框按鈕CBitmapButton()對(duì)象聯(lián)系起來對(duì)象聯(lián)系起來CBitmapButton類定義的兩個(gè)初始類定義的兩個(gè)初始化方法以增強(qiáng)按鈕化方法以增強(qiáng)按鈕的功能的功能LoadBitm
8、aps()AutoLoad()為為CBitmapButton對(duì)象對(duì)象附上位圖,最多可有附上位圖,最多可有4個(gè)個(gè)位圖,這些位圖從用于位圖,這些位圖從用于程序的資源文件中讀取程序的資源文件中讀取列表框類的結(jié)構(gòu)和方法列表框類的結(jié)構(gòu)和方法MFC中中CListBox類的層次結(jié)構(gòu)類的層次結(jié)構(gòu) 列表框經(jīng)常用在對(duì)話框里,如用列表框選擇文件名、列表框經(jīng)常用在對(duì)話框里,如用列表框選擇文件名、目錄等。列表框有一個(gè)預(yù)定義的鍵盤接口,用戶可以用鍵盤上目錄等。列表框有一個(gè)預(yù)定義的鍵盤接口,用戶可以用鍵盤上的箭頭和的箭頭和PageUp或或PageDown鍵在列表框中進(jìn)行數(shù)據(jù)的選擇,鍵在列表框中進(jìn)行數(shù)據(jù)的選擇,或通過適當(dāng)?shù)臉?/p>
9、式設(shè)置,允許與或通過適當(dāng)?shù)臉邮皆O(shè)置,允許與Shift或或Ctrl鍵組合使用。鍵組合使用。列表框常應(yīng)用于從眾多數(shù)據(jù)中選某一項(xiàng)列表框常應(yīng)用于從眾多數(shù)據(jù)中選某一項(xiàng)CListBox()控件可用的樣式 樣式 說明 LBS_DISABLENOSCROLL 當(dāng)列表框不需要滾動(dòng)條時(shí),滾動(dòng)條無效 LBS_EXTENDSEL 允許使用鼠標(biāo)及特殊鍵組合進(jìn)行多項(xiàng)選擇 LBS_HASSTRINGS 指明自繪的列表框,其中包括字符串選項(xiàng) LBS_MULTICOLUMN 指明一個(gè)多列列表框,它含有一個(gè)水平滾動(dòng)條,可以用 SetColumnWidth()方法設(shè)置列的寬度 LBS_MULTIPLESEL 用戶通過單擊或雙擊一項(xiàng)
10、進(jìn)行選擇或取消選擇 LBS_NOINTEGRALHEIGHT 將列表框設(shè)置為創(chuàng)建時(shí)指定的大小 LBS_NOREDRAW 列表框在變化時(shí)不重繪,用戶可以在任何時(shí)候發(fā)送 WM_SETREDRAW 消息改變這種模式 LBS_NOSEL 指明列表框包含只能看不能選擇的項(xiàng) LBS_NOTIFY 當(dāng)用戶單擊或雙擊時(shí)向父窗口發(fā)送消息 LBS_OWNERDRAWFIXED 指明列表框的所有者負(fù)責(zé)填寫列表項(xiàng),且列表框具有相同的高度 LBS_OWNERDRAWVARIABLE 指明列表框的所有者負(fù)責(zé)填寫列表項(xiàng),且列表框可以不同高 LBS_SORT 列表項(xiàng)按字母順序排列 LBS_STANDARD 此樣式是 LBS_
11、NOTIFY、LBS_SORT、WS_VSCROLL和 WS_BORDER 的組合 LBS_USETABSTOPS 告知列表框在加入字符串列表項(xiàng)時(shí)加入 tab 字符 LBS_WANTKEYBOARDINPUT 允許應(yīng)用程序通過發(fā)送 WM_VKEYTOITEM 和WM_CHARTOITEM 消息給列表框的所有者來處理鍵盤輸入 CListBox 消息的消息映像項(xiàng)消息映像項(xiàng)說明ON_LBN_DBLCLK當(dāng)用戶雙擊選項(xiàng)時(shí)具有LBS_NOTIFY樣式的列表框向所有者發(fā)送此消息ON_LBN_ERRSPACE列表框不能分配足夠內(nèi)存以滿足要求ON_LBN_KILLFOCUS當(dāng)列表框失去輸入焦點(diǎn)時(shí)出現(xiàn)此消息ON
12、_LBN_SELCANCEL當(dāng)取消當(dāng)前列表框選擇時(shí), 具有 LBS_NOTIFY樣式的列表框向所有者發(fā)送此消息ON_LBN_SELCHANGE當(dāng)列表框中的選擇改變時(shí), 具有 LBS_NOTIFY樣式的列表框向它的父窗口 發(fā)送此通知。如果選擇是用CListBox: :SetCurSel()類方法改變的,則不發(fā)送通知。對(duì)多項(xiàng)選擇列表框來說,當(dāng)用戶按箭頭鍵時(shí),即使選擇不變也發(fā)送此通知消息映像項(xiàng)使用下面的基本格式:ON_Message(Control ID,ClassMethod)所有者類聲明中的方法原型afx_msg void ClassMethod();();發(fā)送消息的列表框發(fā)送消息的列表框控件的
13、子窗口標(biāo)識(shí)控件的子窗口標(biāo)識(shí)處理消息的父處理消息的父類類方法方法的名字的名字 通通用用 CListBox 類類方方法法 方方法法 描描述述 GetCount() 獲獲得得列列表表框框中中列列表表項(xiàng)項(xiàng)數(shù)數(shù)目目 GetHorizontalExtent() 獲獲得得列列表表框框的的水水平平滾滾動(dòng)動(dòng)寬寬度度(按按像像素素) GetItemData() 獲獲得得列列表表框框項(xiàng)項(xiàng)有有關(guān)關(guān)的的 32 位位值值 GetItemDataPtr() 獲獲得得指指向向列列表表框框項(xiàng)項(xiàng)的的指指針針 GetItemHeight() 獲獲得得列列表表框框中中項(xiàng)項(xiàng)的的高高度度 (1) 通用方法通用方法 通用方法用來獲得和設(shè)置
14、列表框數(shù)據(jù)的值和屬性,所有的通用方法用來獲得和設(shè)置列表框數(shù)據(jù)的值和屬性,所有的CListBox列表框都有這些方法,包括單選列表框、多選列表列表框都有這些方法,包括單選列表框、多選列表框和自繪列表框等??蚝妥岳L列表框等。(2) 單項(xiàng)選擇特定方法單項(xiàng)選擇特定方法列表框的默認(rèn)模式是單選項(xiàng)模式;所有的通用方法均適用列表框的默認(rèn)模式是單選項(xiàng)模式;所有的通用方法均適用于單選項(xiàng)列表框。于單選項(xiàng)列表框。只有只有兩個(gè)類方兩個(gè)類方法專門處理單法專門處理單選項(xiàng)列表框選項(xiàng)列表框GetCurSelGetCurSel()()SetCurSelSetCurSel()()獲得當(dāng)前選擇列表獲得當(dāng)前選擇列表框項(xiàng)的下標(biāo)框項(xiàng)的下標(biāo)(
15、基于基于0)選擇列表框字符串選擇列表框字符串 方法方法 說明說明 GetAnchorIndex()獲得多項(xiàng)選擇列表框中當(dāng)前定位項(xiàng)的下標(biāo)獲得多項(xiàng)選擇列表框中當(dāng)前定位項(xiàng)的下標(biāo)GetCaretIndex() 獲得多項(xiàng)選擇列表框中具有光標(biāo)矩形的項(xiàng)的下標(biāo)獲得多項(xiàng)選擇列表框中具有光標(biāo)矩形的項(xiàng)的下標(biāo)GetSelCount()獲得多項(xiàng)選擇列表框中當(dāng)前所選的項(xiàng)的數(shù)目獲得多項(xiàng)選擇列表框中當(dāng)前所選的項(xiàng)的數(shù)目GetSelItems()將所有當(dāng)前被選列表框項(xiàng)下標(biāo)放入一整型數(shù)組緩沖區(qū)將所有當(dāng)前被選列表框項(xiàng)下標(biāo)放入一整型數(shù)組緩沖區(qū)SelItemRange() 切換多選擇列表框項(xiàng)范圍的選擇狀態(tài)切換多選擇列表框項(xiàng)范圍的選擇狀態(tài)
16、SetAnchorIndex()在多項(xiàng)選擇列表框中擴(kuò)充選擇設(shè)置開始在多項(xiàng)選擇列表框中擴(kuò)充選擇設(shè)置開始(定位定位)項(xiàng)項(xiàng)SetCaretIndex() 在多項(xiàng)選擇列表框中指定下標(biāo)項(xiàng)設(shè)置光標(biāo)矩形在多項(xiàng)選擇列表框中指定下標(biāo)項(xiàng)設(shè)置光標(biāo)矩形SetSel() 在多項(xiàng)選擇列表框中切換項(xiàng)目的選擇狀態(tài)在多項(xiàng)選擇列表框中切換項(xiàng)目的選擇狀態(tài)(3) 多項(xiàng)選擇特定方法多項(xiàng)選擇特定方法多選項(xiàng)列表框擴(kuò)展了多選項(xiàng)列表框擴(kuò)展了標(biāo)準(zhǔn)單項(xiàng)選擇列表框標(biāo)準(zhǔn)單項(xiàng)選擇列表框的能力,可以解決在的能力,可以解決在一個(gè)列表框中選擇多一個(gè)列表框中選擇多項(xiàng)帶來的復(fù)雜性項(xiàng)帶來的復(fù)雜性特定多項(xiàng)選擇列表特定多項(xiàng)選擇列表框的框的CListBoxCListBo
17、x類方法類方法(4) 字符串指定的方法字符串指定的方法 方法方法 說明說明 AddString() 在列表框中加入一個(gè)字符串在列表框中加入一個(gè)字符串DeleteString() 從列表框中刪除一個(gè)字符串從列表框中刪除一個(gè)字符串Dir() 從當(dāng)前目錄加文件名放入列表框從當(dāng)前目錄加文件名放入列表框FindString() 在列表框中搜索一字符串在列表框中搜索一字符串FindStringExact() 在列表框中搜索第一個(gè)與指定搜索字符串匹配的字符串在列表框中搜索第一個(gè)與指定搜索字符串匹配的字符串InsertString() 在列表框指定下標(biāo)處插入一字符串在列表框指定下標(biāo)處插入一字符串ResetCo
18、ntent() 清除列表框中的所有項(xiàng)清除列表框中的所有項(xiàng)SelectString() 在單選列表框中搜索并選擇一字符串在單選列表框中搜索并選擇一字符串CListBox指定列表指定列表框中字符串的方法框中字符串的方法(5) 虛擬方法虛擬方法CLstBox類還聲明了幾個(gè)虛擬方法,你可以從類還聲明了幾個(gè)虛擬方法,你可以從CListBox類類中派生一些類替換到你的類中。中派生一些類替換到你的類中。 方法方法 說明說明 CharToItemCharToItem()()可以替換此方法來為自繪列表框(沒有字符串)處理可以替換此方法來為自繪列表框(沒有字符串)處理WM-CHARWM-CHARCompareIt
19、emCompareItem()() 由由MFCMFC調(diào)用以得到排序的自繪列表框中的新項(xiàng)的位置調(diào)用以得到排序的自繪列表框中的新項(xiàng)的位置DeleteItemDeleteItem()()當(dāng)用戶從自繪列表框中刪除一項(xiàng)時(shí)當(dāng)用戶從自繪列表框中刪除一項(xiàng)時(shí)MFCMFC調(diào)用此方法調(diào)用此方法DrawItemDrawItem()()當(dāng)確定自繪列表框項(xiàng)必須重繪時(shí)當(dāng)確定自繪列表框項(xiàng)必須重繪時(shí)MFCMFC調(diào)用此方法調(diào)用此方法MeasureItemMeasureItem()() 當(dāng)一自繪列表框被創(chuàng)建時(shí)當(dāng)一自繪列表框被創(chuàng)建時(shí)MFCMFC調(diào)用此方法來決定列表框的維數(shù)調(diào)用此方法來決定列表框的維數(shù)VKeyToItemVKeyToI
20、tem()()用戶可替換此方法,來處理具有用戶可替換此方法,來處理具有LBS_WANTKEYBOARDINPUTLBS_WANTKEYBOARDINPUT樣式樣式 的列表框的的列表框的WM_KEYDOWNWM_KEYDOWN能被替換的能被替換的CListBoxCListBox類類的虛擬方法的虛擬方法創(chuàng)建和初始化創(chuàng)建和初始化CListBox對(duì)象對(duì)象(1) 用用C+關(guān)鍵字關(guān)鍵字new和構(gòu)造函數(shù)和構(gòu)造函數(shù)CListBox:CListBoxCListBox:CListBox()() 為為CListBoxCListBox對(duì)象分配一個(gè)實(shí)例。對(duì)象分配一個(gè)實(shí)例。例如,下面代碼分配一個(gè)例如,下面代碼分配一個(gè)CL
21、istBox對(duì)象并返回指向該對(duì)象的指針:對(duì)象并返回指向該對(duì)象的指針: ClistBox ClistBox * *pMyListBox=new CListBoxpMyListBox=new CListBox; 指針指針pMyListBoxpMyListBox用用CListBoxCListBox:Create():Create()方法進(jìn)行初始化。方法進(jìn)行初始化。該方法聲明如下:該方法聲明如下: BOOL Create BOOL Create ( ( DWORD dwStyleDWORD dwStyle, / dwStyle/ dwStyle是列表框控件的窗口樣式是列表框控件的窗口樣式 const
22、Recy& rectconst Recy& rect, / rect/ rect是一個(gè)矩形,它指明控件的大小和位置是一個(gè)矩形,它指明控件的大小和位置 CWndCWnd* * pParentWnd pParentWnd, / pParentWnd/ pParentWnd是指向控件所有者的指針是指向控件所有者的指針 UINT nIDUINT nID / nID / nID是父窗口用來與列表框通信的控件標(biāo)識(shí)是父窗口用來與列表框通信的控件標(biāo)識(shí) ) );(2) 初始化初始化CListBoxCListBox對(duì)象并賦與它一個(gè)對(duì)象并賦與它一個(gè)Windows列表框,列表框, 通過方法通過方法CL
23、istBoxCListBox:Create():Create()設(shè)置列表框的參數(shù)和樣式。設(shè)置列表框的參數(shù)和樣式。14.2 按鈕類及列表框類編程實(shí)例按鈕類及列表框類編程實(shí)例1. 應(yīng)用程序的界面設(shè)計(jì)應(yīng)用程序的界面設(shè)計(jì)單選按鈕組單選按鈕組的的IDID都為都為IDC_STATICIDC_STATIC,說明,說明不同的控件不同的控件可以有可以有相同相同的的IDID。因?yàn)閱芜x按鈕組只是用來顯。因?yàn)閱芜x按鈕組只是用來顯示一組內(nèi)容的屬性示一組內(nèi)容的屬性, ,無具體操作無具體操作#define IDC_Age1_RADIO 1015#define IDC_Age1_RADIO 1015#define IDC_A
24、ge2_RADIO 1016#define IDC_Age2_RADIO 1016#define IDC_Age3_RADIO 1017#define IDC_Age3_RADIO 1017#define IDC_Boy_RADIO 1023#define IDC_Boy_RADIO 1023#define IDC_Girl_RADIO 1024#define IDC_Girl_RADIO 1024同一組單選按鈕同一組單選按鈕必須必須一個(gè)接一個(gè)一個(gè)接一個(gè)地放進(jìn)地放進(jìn)對(duì)話框中對(duì)話框中中間不能中斷中間不能中斷對(duì)于對(duì)于成組成組的單選按鈕,的單選按鈕,只在每組的第一個(gè)按鈕只在每組的第一個(gè)按鈕的屬性窗口
25、中選中的屬性窗口中選中Group2. 應(yīng)用程序的代碼編程部分應(yīng)用程序的代碼編程部分 控控件件及及其其連連接接的的變變量量ID變變量量名名類類型型I ID DC C_ _D DA AT TE E_ _C CH HE EC CK Km m_ _D Da at te eC Ch he ec ck kB BO OO OL LI ID DC C_ _T TI IM ME E_ _C CH HE EC CK Km m_ _T Ti im me eC Ch he ec ck kB BO OO OL LI ID DC C_ _D DA AT TE E_ _E ED DI IT Tm m_ _D Da at t
26、e eE Ed di it tC CE Ed di it tI ID DC C_ _T TI IM ME E_ _E ED DI IT Tm m_ _T Ti im me eE Ed di it tC CE Ed di it tI ID DC C_ _B Bo oy y_ _R RA AD DI IO Om m_ _S Se ex xR Ra ad di io oC CB Bu ut tt to on nI ID DC C_ _A Ag ge e1 1_ _R RA AD DI IO Om m_ _A Ag ge eR Ra ad di io oC CB Bu ut tt to on nI I
27、D DC C_ _R Re es su ul lt t_ _E ED DI IT Tm m_ _R Re es su ul lt tE Ed di it tC CE Ed di it tI ID DC C_ _E EN NG GL LI IS SH H_ _R RA AD DI IO Om m_ _E En ng gl li is sh hi in nt tI ID DC C_ _C CO OM MB BO O_ _E ED DI IT Tm m_ _C Co om mb bo oE Ed di it tC CS St tr ri in ng gI ID DC C_ _R RE EC CO O
28、R RD D_ _C CO OM MB BO Om m_ _R Re ec co or rd dC CC Co om mb bo oB Bo ox xI ID DC C_ _S SH HO OW W_ _C CO OM MB BO O_ _B BU UT TT TO ON Nm m_ _C Co om mb bo o_ _B Bu ut tt to on nC CB Bu ut tt to on n 方法的實(shí)現(xiàn)方法的實(shí)現(xiàn) 控控件件的的連連接接方方法法ID方方法法IDC_DATE_CHECKOnDateCheck()IDC_TIME_CHECKOnTimeCheck()IDC_ENABLE_BU
29、TTONOnEnableButton()IDC_DISABLE_BUTTONOnDisableButton()IDC_SHOW_BUTTONOnShowButton()IDC_HIDE_BUTTONOnHideButton()IDC_Show_Sex_Age_BUTTONOnShowSexAgeButton()IDC_SHOW_COMBO_BUTTONOnShowComboButton()IED_EXIT_BUTTONOnExitButton()為復(fù)選框?yàn)閺?fù)選框IDC_TIME_CHECK添加代碼添加代碼void CSELECTBOXDlg:OnTimeCheckvoid CSELECTBOX
30、Dlg:OnTimeCheck() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼 UpdateDataUpdateData(TRUE);(TRUE); if(m_TimeCheck if(m_TimeCheck=TRUE)=TRUE) CTime tNow CTime tNow; ; tNow=CTime:GetCurrentTime tNow=CTime:GetCurrentTime();(); CString sNow=tNow CString sNow=tNow.Format(%I:%M:%S);.Format(%I:%M:%S); m_TimeEdit.SetSe
31、l(0,-1); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(sNow m_TimeEdit.ReplaceSel(sNow);); else else m_TimeEdit.SetSel(0,-1); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel m_TimeEdit.ReplaceSel();(); UpdateDataUpdateData(FALSE);(FALSE); 其中函數(shù)其中函數(shù)Format的參數(shù)的參數(shù)%I是時(shí)間的小時(shí)表示法(是時(shí)間的小時(shí)表示法(01到到12),),%m是分是分的表示
32、法(的表示法(00到到59),),%S是秒的表示法(是秒的表示法(00到到59)給給Enable按鈕添加代碼按鈕添加代碼OnEnableButton()方法的實(shí)現(xiàn)代碼如下:方法的實(shí)現(xiàn)代碼如下:void CSELECTBOXDlg:OnEnableButtonvoid CSELECTBOXDlg:OnEnableButton() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始GetDlgItem(IDC_DATE_CHECK)-EnableWindowGetDlgItem(IDC_DATE_CHECK)-EnableWindow(TRUE);(TRU
33、E);GetDlgItem(IDC_TIME_CHECK)-EnableWindowGetDlgItem(IDC_TIME_CHECK)-EnableWindow(TRUE);(TRUE);m_DateEdit.EnableWindowm_DateEdit.EnableWindow(TRUE);(TRUE);m_TimeEdit.EnableWindowm_TimeEdit.EnableWindow(TRUE);(TRUE);/添加代碼結(jié)束添加代碼結(jié)束 為為Disable按鈕連接代碼按鈕連接代碼 OnDisableButton()方法的實(shí)現(xiàn)代碼如下:()方法的實(shí)現(xiàn)代碼如下:void CSELE
34、CTBOXDlg:OnDisableButtonvoid CSELECTBOXDlg:OnDisableButton() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始GetDlgItem(IDC_DATE_CHECK)-EnableWindowGetDlgItem(IDC_DATE_CHECK)-EnableWindow(FALSE);(FALSE);GetDlgItem(IDC_TIME_CHECK)-EnableWindowGetDlgItem(IDC_TIME_CHECK)-EnableWindow(FALSE);(FALSE);m_Dat
35、eEdit.EnableWindowm_DateEdit.EnableWindow(FALSE);(FALSE);m_TimeEdit.EnableWindowm_TimeEdit.EnableWindow(FALSE);(FALSE);/添加代碼結(jié)束添加代碼結(jié)束 為為Show Again按鈕添加代碼按鈕添加代碼在函數(shù)在函數(shù)OnShowButton()方法中添加實(shí)現(xiàn)代碼如下:方法中添加實(shí)現(xiàn)代碼如下:void CSELECTBOXDlg:OnShowButtonvoid CSELECTBOXDlg:OnShowButton() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/
36、添加代碼開始添加代碼開始GetDlgItem(IDC_DATE_CHECK)-EnableWindowGetDlgItem(IDC_DATE_CHECK)-EnableWindow(SW_SHOW);(SW_SHOW);GetDlgItem(IDC_TIME_CHECK)-EnableWindowGetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_SHOW);(SW_SHOW);GetDlgItem(IDC_DATE_EDIT)-EnableWindowGetDlgItem(IDC_DATE_EDIT)-EnableWindow(SW_SHOW);(SW_SH
37、OW);m_DateEdit.ShowWindowm_DateEdit.ShowWindow(SW_SHOW);(SW_SHOW);GetDlgItem(IDC_TIME_EDIT)-EnableWindowGetDlgItem(IDC_TIME_EDIT)-EnableWindow(SW_SHOW);(SW_SHOW);m_TimeEdit.ShowWindowm_TimeEdit.ShowWindow(SW_SHOW); (SW_SHOW); /添加代碼結(jié)束添加代碼結(jié)束 為為Hide the Clock Setting按鈕添加實(shí)現(xiàn)代碼按鈕添加實(shí)現(xiàn)代碼函數(shù)函數(shù)OnHideButton()方法
38、中輸入以下實(shí)現(xiàn)代碼:方法中輸入以下實(shí)現(xiàn)代碼:void CSELECTBOXDlg:OnHideButtonvoid CSELECTBOXDlg:OnHideButton() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始GetDlgItem(IDC_DATE_CHECK)-EnableWindowGetDlgItem(IDC_DATE_CHECK)-EnableWindow(SW_HIDE);(SW_HIDE);GetDlgItem(IDC_TIME_CHECK)-EnableWindowGetDlgItem(IDC_TIME_CHECK)-Ena
39、bleWindow(SW_HIDE);(SW_HIDE);m_DateEdit.ShowWindowm_DateEdit.ShowWindow(SW_HIDE);(SW_HIDE);m_TimeEdit.ShowWindowm_TimeEdit.ShowWindow(SW_HIDE);(SW_HIDE);/添加代碼結(jié)束添加代碼結(jié)束 函數(shù)函數(shù)ShowWindow()是基類是基類CWnd的成員函數(shù),它表示是否顯示的成員函數(shù),它表示是否顯示對(duì)象窗口,參數(shù)對(duì)象窗口,參數(shù)SW_SHOW表示顯示,表示顯示,SW_HIDE表示隱藏表示隱藏。給給Show_the_Sex_and_Age按鈕添加代碼按鈕添加代碼
40、OnShowSexAgeButton()方法的實(shí)現(xiàn)代碼如下:方法的實(shí)現(xiàn)代碼如下:void CSELECTBOXDlg:OnShowSexAgeBUTTONvoid CSELECTBOXDlg:OnShowSexAgeBUTTON() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼 char sEdit50;char sEdit50; int iSexRADIO int iSexRADIO; ; int iAgeRADIO int iAgeRADIO; ; iSexRADIO=GetCheckedRadioButton iSexRADIO=GetCheckedRadioBut
41、ton(IDC_Boy_RADIO,IDC_Girl_RADIO);(IDC_Boy_RADIO,IDC_Girl_RADIO); if(iSexRADIO=IDC_Boy_RADIO) strcpy(sEdit if(iSexRADIO=IDC_Boy_RADIO) strcpy(sEdit,The boys age is);,The boys age is); if(iSexRADIO=IDC_Girl_RADIO) strcpy(sEdit if(iSexRADIO=IDC_Girl_RADIO) strcpy(sEdit,The girls age is);,The girls age
42、 is); iAgeRADIO iAgeRADIO=GetCheckedRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO);=GetCheckedRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO); if(iAgeRADIO=IDC_Age1_RADIO) strcat(sEdit if(iAgeRADIO=IDC_Age1_RADIO) strcat(sEdit, great than 20);, great than 20); if(iAgeRADIO=IDC_Age2_RADIO) strcat(sEdit if(iAg
43、eRADIO=IDC_Age2_RADIO) strcat(sEdit, between 15 and 20);, between 15 and 20); if(iAgeRADIO=IDC_Age3_RADIO) strcat(sEdit if(iAgeRADIO=IDC_Age3_RADIO) strcat(sEdit, less than 15);, less than 15); m_ResultEdit.SetSel(0,-1); m_ResultEdit.SetSel(0,-1); m_ResultEdit.ReplaceSel(sEdit m_ResultEdit.ReplaceSe
44、l(sEdit);); 為為Show_Combo按鈕添加代碼按鈕添加代碼OnShowComboButton()方法的實(shí)現(xiàn)的代碼如下:方法的實(shí)現(xiàn)的代碼如下:void CSELECTBOXDlg:OnShowComboButtonvoid CSELECTBOXDlg:OnShowComboButton() () UpdateData UpdateData(TRUE);(TRUE); char sCourseEdit30; char sCourseEdit30; char sRecordEdit15; char sRecordEdit15; int iCourseRadio int iCourseR
45、adio; ; iCourseRadio=GetCheckedRadioButton iCourseRadio=GetCheckedRadioButton(IDC_ENGLISH_RADIO,IDC_NATURE_RADIO);(IDC_ENGLISH_RADIO,IDC_NATURE_RADIO); if(iCourseRadio if(iCourseRadio=IDC_ENGLISH_RADIO)=IDC_ENGLISH_RADIO) strcpy(sCourseEditstrcpy(sCourseEdit,English record is );,English record is );
46、 if(iCourseRadio if(iCourseRadio=IDC_COMPUTER_RADIO)=IDC_COMPUTER_RADIO)strcpy(sCourseEditstrcpy(sCourseEdit,Computer record is );,Computer record is ); if(iCourseRadio if(iCourseRadio=IDC_NATURE_RADIO)=IDC_NATURE_RADIO)strcpy(sCourseEditstrcpy(sCourseEdit,Natural record is );,Natural record is ); m
47、_Record.GetWindowText(sRecordEdit,15); m_Record.GetWindowText(sRecordEdit,15); strcat(sCourseEdit strcat(sCourseEdit,);,); strcat(sCourseEdit,sRecordEdit strcat(sCourseEdit,sRecordEdit);); m_ComboEdit m_ComboEdit=_T(sCourseEdit=_T(sCourseEdit);); UpdateData(FALSE UpdateData(FALSE);); 給給OnExitButton(
48、)方法添加代碼方法添加代碼OnExitButton()的實(shí)現(xiàn)代碼如下:的實(shí)現(xiàn)代碼如下:void CSELECTBOXDlg:OnExitButtonvoid CSELECTBOXDlg:OnExitButton() () / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始OnOKOnOK();();/添加代碼結(jié)束添加代碼結(jié)束 初始化單選按鈕初始化單選按鈕BOOL CSELECTBOXDlg:OnInitDialogBOOL CSELECTBOXDlg:OnInitDialog()()CDialog:OnInitDialogCDialog:OnInitDial
49、og();(); / IDM_ABOUTBOX must be in the system command range. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX 0 xF000); ASSERT(IDM_ABOUTBOX AppendMenu pSysMenu-AppendMenu(MF
50、_SEPARATOR);(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenupSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);); SetIcon(m_hIconSetIcon(m_hIcon, TRUE);, TRUE);/ Set big icon/ Set big icon SetIcon(m_hIcon SetIcon(m_hIcon, FALSE);, FALSE);/ Set small icon/ Set small icon/
51、 / 在此加入其他初始化代碼在此加入其他初始化代碼(Add extra initialization here)(Add extra initialization here) CheckRadioButton CheckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO);(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO,IDC_Age2_RADIO);CheckRadioButton(IDC_Age1
52、_RADIO,IDC_Age3_RADIO,IDC_Age2_RADIO); UpdateData UpdateData(FALSE);(FALSE); m_English=0; m_English=0; m_Record.AddString(85); m_Record.AddString(85); m_Record.AddString(90); m_Record.AddString(90); m_Record.AddString(95); m_Record.AddString(95); m_Record.SelectString(-1,95); m_Record.SelectString(-
53、1,95); UpdateData UpdateData(FALSE);(FALSE); return TRUE;/ return TRUE;/return TRUE unless you set the focus to a controlreturn TRUE unless you set the focus to a control 如圖創(chuàng)建應(yīng)用程序,在如圖創(chuàng)建應(yīng)用程序,在“形狀形狀”列表框中選擇要繪制圖形,在列表框中選擇要繪制圖形,在“筆顏色筆顏色”下下拉列表框選擇畫筆的顏色,在拉列表框選擇畫筆的顏色,在“刷子顏色刷子顏色”下拉列表框中選擇畫刷的顏色。下拉列表框中選擇畫刷的顏色。在在“
54、線型線型”組合框選擇畫筆的線型,在組合框選擇畫筆的線型,在“填充類型填充類型”中選擇畫刷填充類型。中選擇畫刷填充類型。單擊單擊“繪圖繪圖” ” 按鈕按照前面的選項(xiàng)繪制圖形,單擊按鈕按照前面的選項(xiàng)繪制圖形,單擊“退出退出”按鈕退出程序。按鈕退出程序。靜態(tài)文本靜態(tài)文本 IDC_STATICIDC_STATIC 形狀形狀列表框列表框 IDC_LIST_SHAPEIDC_LIST_SHAPE靜態(tài)文本靜態(tài)文本 IDC_STATICIDC_STATIC 刷子顏色刷子顏色下拉列表框下拉列表框 IDC_COMBO_BRUSHCOLORIDC_COMBO_BRUSHCOLOR靜態(tài)文本靜態(tài)文本 IDC_STATI
55、CIDC_STATIC 筆顏色筆顏色下拉列表框下拉列表框 IDC_COMBO_PENCOLORIDC_COMBO_PENCOLOR“筆顏色筆顏色”下拉列表框下拉列表框-單擊鼠標(biāo)右鍵單擊鼠標(biāo)右鍵-Properties-Properties-DataData選項(xiàng)卡選項(xiàng)卡-輸入顏色輸入顏色( (輸完一行后,輸完一行后,按下按下Ctrl+EnterCtrl+Enter鍵鍵) )。同理處理同理處理“畫刷顏色畫刷顏色”下下拉列表框拉列表框 name ID Caption name ID Caption組合框組合框 IDC_STATICIDC_STATIC 線型線型單選按鈕單選按鈕 IDC_RADIO_SO
56、LID SolidIDC_RADIO_SOLID Solid單選按鈕單選按鈕 IDC_RADIO_DASH DashIDC_RADIO_DASH Dash單選按鈕單選按鈕 IDC_RADIO_DOT DotIDC_RADIO_DOT Dot單選按鈕單選按鈕 IDC_RADIO_DASHDOT DashDotIDC_RADIO_DASHDOT DashDotname ID Captionname ID Caption組合框組合框 IDC_STATICIDC_STATIC 填充類型填充類型單選按鈕單選按鈕 IDC_RADIO_SOLIDBRUSH SolidBrushIDC_RADIO_SOLID
57、BRUSH SolidBrush單選按鈕單選按鈕 IDC_RADIO_CROSSIDC_RADIO_CROSSCrossCross單選按鈕單選按鈕 IDC_RADIO_PDIAGONAL PDiagonalIDC_RADIO_PDIAGONAL PDiagonal單選按鈕單選按鈕 IDC_RADIO_BDIAGONAL BDiagonalIDC_RADIO_BDIAGONAL BDiagonalSolid -Solid -鼠標(biāo)右鍵鼠標(biāo)右鍵 -Properties-Properties-選中選中GroupGroup選選項(xiàng)。注意創(chuàng)建單選按鈕時(shí)要項(xiàng)。注意創(chuàng)建單選按鈕時(shí)要按照?qǐng)D中從上到下的順序,按照?qǐng)D
58、中從上到下的順序,這樣保證了單選按鈕的這樣保證了單選按鈕的IDID值值是連續(xù)的,才能保證兩組單是連續(xù)的,才能保證兩組單選按鈕的互斥性。選按鈕的互斥性。下壓式按鈕下壓式按鈕 IDC_BTN_DRAWIDC_BTN_DRAW 繪制繪制下壓式按鈕下壓式按鈕 IDOKIDOK退出退出 為對(duì)話框中控件連接變量為對(duì)話框中控件連接變量Control IdsControl Ids變量類型變量類型變量名稱變量名稱IDC_LIST_SHAPEIDC_LIST_SHAPECListBoxCListBoxm_ListShapem_ListShapeIDC_COMBO_PENCOLORIDC_COMBO_PENCOLO
59、RCComboBoxCComboBoxm_ComboPenColorm_ComboPenColorIDC_COMBO_BRUSHCOLORIDC_COMBO_BRUSHCOLOR CComboBoxCComboBoxm_ComboBrushColorm_ComboBrushColor在文件在文件14_8Dlg14_8Dlg中的消息處理函數(shù)中的消息處理函數(shù)OnInitDialogOnInitDialog()()中加入代碼如下:中加入代碼如下:m_ListShape.AddStringm_ListShape.AddString(Line);(Line);m_ListShape.AddStringm
60、_ListShape.AddString(Circle);(Circle);m_ListShape.AddStringm_ListShape.AddString(Rectangle);(Rectangle);m_ListShape.AddString(RoundRectanglem_ListShape.AddString(RoundRectangle););調(diào)用列表框類成員函數(shù)調(diào)用列表框類成員函數(shù)AddStringAddString()()給列表框加入選項(xiàng),完成列表框的初始化給列表框加入選項(xiàng),完成列表框的初始化在在WorkspaceWorkspace窗口中,選擇窗口中,選擇ClassViewClassView卡,在類卡,在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個(gè)人借款擔(dān)保機(jī)構(gòu)合作協(xié)議3篇
- 2025版蓄水池安全監(jiān)測系統(tǒng)設(shè)計(jì)與安裝服務(wù)合同范本3篇
- 質(zhì)子治療設(shè)備安裝方案
- 二零二五版私人車輛抵押貸款利息調(diào)整合同3篇
- 二零二五年度入學(xué)新生教育法律協(xié)議書(特色版)3篇
- 山西彩色壓印路面施工方案
- 2025版綠化工程樹苗供應(yīng)合同范本范文3篇
- 2025版汽車維修企業(yè)資產(chǎn)重組與轉(zhuǎn)讓合同模板3篇
- 遼寧工地木質(zhì)圍擋施工方案
- 坪地?zé)崛圮囄粍澗€施工方案
- 醫(yī)院科室考勤表
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 數(shù)字的秘密生活:最有趣的50個(gè)數(shù)學(xué)故事
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)一 移動(dòng)商務(wù)內(nèi)容運(yùn)營關(guān)鍵要素分解
- 基于ADAMS的汽車懸架系統(tǒng)建模與優(yōu)化
- 當(dāng)前中國個(gè)人極端暴力犯罪個(gè)案研究
- 中國象棋比賽規(guī)則
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
- GB/T 31525-2015圖形標(biāo)志電動(dòng)汽車充換電設(shè)施標(biāo)志
- 最新北師大版八年級(jí)數(shù)學(xué)下冊(cè)教學(xué)課件全冊(cè)
- 裝飾業(yè)務(wù)員培訓(xùn)教程方案
評(píng)論
0/150
提交評(píng)論