版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、會計學(xué)1按鈕控件與列表框控件按鈕控件與列表框控件第一頁,共38頁。表表 14-1 CButton 類類中中按按鈕鈕特特有有的的樣樣式式 樣樣式式宏宏 說說明明 BS_3STATE 此此樣樣式式為為復(fù)復(fù)選選框框,但但是是方方框框可可以以被被選選中中,也也可可以以變變暗暗(表表明明復(fù)復(fù)選選框框無無效效) BS_AUTO3STATE 此此樣樣式式為為復(fù)復(fù)選選框框,但但是是方方框框可可以以被被選選中中,也也可可以以變變暗暗(表表明明復(fù)復(fù)選選框框無無效效),當(dāng)當(dāng)用用戶戶選選擇擇方方框框時時,它它的的選選中中狀狀態(tài)態(tài)會會自自動動轉(zhuǎn)轉(zhuǎn)換換 B BS S_ _A AU UT TO OC CH HE EC CK
2、 KB BO OX X 此此樣樣式式為為復(fù)復(fù)選選框框,當(dāng)當(dāng)用用戶戶選選擇擇方方框框時時,它它的的選選中中狀狀態(tài)態(tài)會會自自動動轉(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)用用戶戶選選中中圓圓圈圈時時,按按鈕鈕自自動動顯顯示示自自己己被被選選中中的的狀狀態(tài)態(tài),同同時時使使其其它它具具有有相相同同樣樣式式的的同同組組的的單單選選按按鈕鈕處處于于未未被被選選中中的的狀狀態(tài)態(tài) BS_CHECKBOX 創(chuàng)創(chuàng)建建一一個個復(fù)復(fù)選選框框,默默認(rèn)認(rèn)情情況況下下它它的的右右邊邊有有標(biāo)標(biāo)題題,當(dāng)當(dāng)與與 B
3、S_LEFTTEXT一一起起使使用用時時,標(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)建建一一個個下下壓壓式式按按鈕鈕 BS_GROUPBOX 創(chuàng)創(chuàng)建建一一個個帶帶標(biāo)標(biāo)題題的的分分組組框框 BS_LEFTTEXT 當(dāng)當(dāng)和和一一個個單單選選按按鈕鈕或或復(fù)復(fù)選選按按鈕鈕一一起起使使用用時時,使使得得按按鈕鈕文文字字出出現(xiàn)現(xiàn)在在按按鈕鈕的的左左邊邊 BS_OWNERDRAW 創(chuàng)創(chuàng)建建自自定定義義按按鈕鈕, 當(dāng)當(dāng)按按鈕鈕視視覺覺被被改改變變時時, MFC 自自動動調(diào)調(diào)用用 DrawItem()方方法法,在在使使用用 CBi
4、tmapButton 類類時時,這這種種樣樣式式必必須須被被指指定定 BS_PUSHBUTTON 創(chuàng)創(chuàng)建建一一個個下下壓壓式式按按鈕鈕,用用戶戶單單擊擊此此按按鈕鈕時時,向向系系統(tǒng)統(tǒng)發(fā)發(fā)送送 WM_COMMAND消消息息 BS_RADIOBUTTON 創(chuàng)創(chuàng)建建單單選選按按鈕鈕 第2頁/共38頁第1頁/共38頁第二頁,共38頁。表表 14-2 類類 CButton 的的方方法法 方方法法 說說明明 GetBitmap() 獲獲得得用用 SetBitmap()設(shè)設(shè)置置的的位位圖圖的的句句柄柄 GetButtonStyle() 獲獲得得有有關(guān)關(guān)按按鈕鈕控控件件樣樣式式的的信信息息 GetCheck(
5、) 獲獲得得按按鈕鈕控控件件選選中中的的狀狀態(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
6、tIcon() 指指定定按按鈕鈕上上顯顯示示的的圖圖標(biāo)標(biāo) SetState() 設(shè)設(shè)置置按按鈕鈕控控件件的的選選擇擇狀狀態(tài)態(tài) 第3頁/共38頁第2頁/共38頁第三頁,共38頁。MFC調(diào)用方法調(diào)用方法DrawItem()自動自動(zdng)在一個按鈕的用戶區(qū)在一個按鈕的用戶區(qū)上畫上位圖,即用戶可以自定義按鈕。上畫上位圖,即用戶可以自定義按鈕。有時必須調(diào)整有時必須調(diào)整(tiozhng)位圖的尺寸大小,可以通過位圖的尺寸大小,可以通過SizeToContent()方法進(jìn)行調(diào)整方法進(jìn)行調(diào)整(tiozhng)將對話框按鈕將對話框按鈕CBitmapButton()對象聯(lián)系起來對象聯(lián)系起來CBitmapBu
7、tton類定義的兩個初始類定義的兩個初始化方法以增強(qiáng)按鈕化方法以增強(qiáng)按鈕的功能的功能LoadBitmaps()AutoLoad()為為CBitmapButton對對象附上位圖,最多可有象附上位圖,最多可有4個位圖,這些位圖從個位圖,這些位圖從用于程序的資源文件中用于程序的資源文件中讀取讀取第4頁/共38頁第3頁/共38頁第四頁,共38頁。列表框類的結(jié)構(gòu)列表框類的結(jié)構(gòu)(jigu)和方法和方法MFC中中CListBox類的層次結(jié)構(gòu)類的層次結(jié)構(gòu) 列表框經(jīng)常用在對話框里,如用列表框選擇文件名、目錄列表框經(jīng)常用在對話框里,如用列表框選擇文件名、目錄等。列表框有一個預(yù)定義的鍵盤接口,用戶可以用鍵盤上的箭頭
8、等。列表框有一個預(yù)定義的鍵盤接口,用戶可以用鍵盤上的箭頭和和PageUp或或PageDown鍵在列表框中進(jìn)行鍵在列表框中進(jìn)行(jnxng)數(shù)據(jù)的選擇,數(shù)據(jù)的選擇,或通過適當(dāng)?shù)臉邮皆O(shè)置,允許與或通過適當(dāng)?shù)臉邮皆O(shè)置,允許與Shift或或Ctrl鍵組合使用。鍵組合使用。列表框常應(yīng)用列表框常應(yīng)用(yngyng)于從眾多數(shù)據(jù)中選于從眾多數(shù)據(jù)中選某一項某一項第5頁/共38頁第4頁/共38頁第五頁,共38頁。CListBox()控件可用的樣式 樣式 說明 LBS_DISABLENOSCROLL 當(dāng)列表框不需要滾動條時,滾動條無效 LBS_EXTENDSEL 允許使用鼠標(biāo)及特殊鍵組合進(jìn)行多項選擇 LBS_HA
9、SSTRINGS 指明自繪的列表框,其中包括字符串選項 LBS_MULTICOLUMN 指明一個多列列表框,它含有一個水平滾動條,可以用 SetColumnWidth()方法設(shè)置列的寬度 LBS_MULTIPLESEL 用戶通過單擊或雙擊一項進(jìn)行選擇或取消選擇 LBS_NOINTEGRALHEIGHT 將列表框設(shè)置為創(chuàng)建時指定的大小 LBS_NOREDRAW 列表框在變化時不重繪,用戶可以在任何時候發(fā)送 WM_SETREDRAW 消息改變這種模式 LBS_NOSEL 指明列表框包含只能看不能選擇的項 LBS_NOTIFY 當(dāng)用戶單擊或雙擊時向父窗口發(fā)送消息 LBS_OWNERDRAWFIXED
10、 指明列表框的所有者負(fù)責(zé)填寫列表項,且列表框具有相同的高度 LBS_OWNERDRAWVARIABLE 指明列表框的所有者負(fù)責(zé)填寫列表項,且列表框可以不同高 LBS_SORT 列表項按字母順序排列 LBS_STANDARD 此樣式是 LBS_NOTIFY、LBS_SORT、WS_VSCROLL和 WS_BORDER 的組合 LBS_USETABSTOPS 告知列表框在加入字符串列表項時加入 tab 字符 LBS_WANTKEYBOARDINPUT 允許應(yīng)用程序通過發(fā)送 WM_VKEYTOITEM 和WM_CHARTOITEM 消息給列表框的所有者來處理鍵盤輸入 第6頁/共38頁第5頁/共38頁
11、第六頁,共38頁。 CListBox 消息的消息映像項消息映像項說明ON_LBN_DBLCLK當(dāng)用戶雙擊選項時具有LBS_NOTIFY樣式的列表框向所有者發(fā)送此消息ON_LBN_ERRSPACE列表框不能分配足夠內(nèi)存以滿足要求ON_LBN_KILLFOCUS當(dāng)列表框失去輸入焦點時出現(xiàn)此消息ON_LBN_SELCANCEL當(dāng)取消當(dāng)前列表框選擇時, 具有 LBS_NOTIFY樣式的列表框向所有者發(fā)送此消息ON_LBN_SELCHANGE當(dāng)列表框中的選擇改變時, 具有 LBS_NOTIFY樣式的列表框向它的父窗口 發(fā)送此通知。如果選擇是用CListBox: :SetCurSel()類方法改變的,則不
12、發(fā)送通知。對多項選擇列表框來說,當(dāng)用戶按箭頭鍵時,即使選擇不變也發(fā)送此通知消息映像項使用下面的基本格式:ON_Message(Control ID,ClassMethod)所有者類聲明中的方法原型afx_msg void ClassMethod()();發(fā)送消息的列表框發(fā)送消息的列表框控件的子窗口標(biāo)識控件的子窗口標(biāo)識處理消息的父處理消息的父類類方法方法的名字的名字第7頁/共38頁第6頁/共38頁第七頁,共38頁。 通通用用 CListBox 類類方方法法 方方法法 描描述述 GetCount() 獲獲得得列列表表框框中中列列表表項項數(shù)數(shù)目目 GetHorizontalExtent() 獲獲得得
13、列列表表框框的的水水平平滾滾動動寬寬度度(按按像像素素) GetItemData() 獲獲得得列列表表框框項項有有關(guān)關(guān)的的 32 位位值值 GetItemDataPtr() 獲獲得得指指向向列列表表框框項項的的指指針針 GetItemHeight() 獲獲得得列列表表框框中中項項的的高高度度 (1) 通用通用(tngyng)方法方法 通用方法通用方法(fngf)用來獲得和設(shè)置列表框數(shù)據(jù)的值和屬性,所有的用來獲得和設(shè)置列表框數(shù)據(jù)的值和屬性,所有的CListBox列表框都有這些方法列表框都有這些方法(fngf),包括單選列表框、多選列表框和,包括單選列表框、多選列表框和自繪列表框等。自繪列表框等。
14、第8頁/共38頁第7頁/共38頁第八頁,共38頁。(2) 單項選擇單項選擇(xunz)特定方法特定方法列表框的默認(rèn)模式是單選項模式;所有的通用列表框的默認(rèn)模式是單選項模式;所有的通用(tngyng)方法均適用于方法均適用于單選項列表框。單選項列表框。只有只有兩個類方兩個類方法專門處理單法專門處理單選項列表框選項列表框GetCurSel()GetCurSel()SetCurSel()SetCurSel()獲得當(dāng)前選擇列表獲得當(dāng)前選擇列表框項的下標(biāo)框項的下標(biāo)(基于基于0)選擇列表框字符串選擇列表框字符串第9頁/共38頁第8頁/共38頁第九頁,共38頁。 方法方法(fngf) 說明說明 GetAnc
15、horIndex()獲得多項選擇列表框中當(dāng)前定位項的下標(biāo)獲得多項選擇列表框中當(dāng)前定位項的下標(biāo)GetCaretIndex() 獲得多項選擇列表框中具有光標(biāo)矩形的項的下標(biāo)獲得多項選擇列表框中具有光標(biāo)矩形的項的下標(biāo)GetSelCount()獲得多項選擇列表框中當(dāng)前所選的項的數(shù)目獲得多項選擇列表框中當(dāng)前所選的項的數(shù)目GetSelItems()將所有當(dāng)前被選列表框項下標(biāo)放入一整型數(shù)組緩沖區(qū)將所有當(dāng)前被選列表框項下標(biāo)放入一整型數(shù)組緩沖區(qū)SelItemRange() 切換多選擇列表框項范圍的選擇狀態(tài)切換多選擇列表框項范圍的選擇狀態(tài)SetAnchorIndex()在多項選擇列表框中擴(kuò)充選擇設(shè)置開始在多項選擇列
16、表框中擴(kuò)充選擇設(shè)置開始(定位定位)項項SetCaretIndex() 在多項選擇列表框中指定下標(biāo)項設(shè)置光標(biāo)矩形在多項選擇列表框中指定下標(biāo)項設(shè)置光標(biāo)矩形SetSel() 在多項選擇列表框中切換項目的選擇狀態(tài)在多項選擇列表框中切換項目的選擇狀態(tài)(3) 多項選擇特定多項選擇特定(tdng)方法方法多選項列表框擴(kuò)展了多選項列表框擴(kuò)展了標(biāo)準(zhǔn)單項選擇列表框標(biāo)準(zhǔn)單項選擇列表框的能力,可以的能力,可以(ky)解決在解決在一個列表框中選擇多一個列表框中選擇多項帶來的復(fù)雜性項帶來的復(fù)雜性特定多項選擇列表特定多項選擇列表框的框的CListBoxCListBox類方法類方法第10頁/共38頁第9頁/共38頁第十頁,共
17、38頁。(4) 字符串指定字符串指定(zhdng)的方法的方法 方法方法 說明說明 AddString() 在列表框中加入一個字符串在列表框中加入一個字符串DeleteString() 從列表框中刪除一個字符串從列表框中刪除一個字符串Dir() 從當(dāng)前目錄加文件名放入列表框從當(dāng)前目錄加文件名放入列表框FindString() 在列表框中搜索一字符串在列表框中搜索一字符串FindStringExact() 在列表框中搜索第一個與指定搜索字符串匹配的字符串在列表框中搜索第一個與指定搜索字符串匹配的字符串InsertString() 在列表框指定下標(biāo)在列表框指定下標(biāo)(xi bio)處插入一字符串處插
18、入一字符串ResetContent() 清除列表框中的所有項清除列表框中的所有項SelectString() 在單選列表框中搜索并選擇一字符串在單選列表框中搜索并選擇一字符串CListBox指定指定(zhdng)列表列表框中字符串的方法框中字符串的方法第11頁/共38頁第10頁/共38頁第十一頁,共38頁。(5) 虛擬虛擬(xn)方法方法CLstBox類還聲明了幾個虛擬方法,你可以從類還聲明了幾個虛擬方法,你可以從CListBox類類中派生中派生(pishng)一些類替換到你的類中。一些類替換到你的類中。 方法方法 說明說明 CharToItem()CharToItem()可以替換此方法來為自
19、繪列表框(沒有字符串)處理可以替換此方法來為自繪列表框(沒有字符串)處理WM-WM-CHARCHARCompareItem()CompareItem()由由MFCMFC調(diào)用以得到排序的自繪列表框中的新項的位置調(diào)用以得到排序的自繪列表框中的新項的位置DeleteItem()DeleteItem()當(dāng)用戶從自繪列表框中刪除一項時當(dāng)用戶從自繪列表框中刪除一項時MFCMFC調(diào)用此方法調(diào)用此方法DrawItem()DrawItem()當(dāng)確定自繪列表框項必須重繪時當(dāng)確定自繪列表框項必須重繪時MFCMFC調(diào)用此方法調(diào)用此方法MeasureItem()MeasureItem()當(dāng)一自繪列表框被創(chuàng)建時當(dāng)一自繪列
20、表框被創(chuàng)建時MFCMFC調(diào)用此方法來決定列表框的調(diào)用此方法來決定列表框的維數(shù)維數(shù)VKeyToItem()VKeyToItem()用戶可替換此方法,來處理具有用戶可替換此方法,來處理具有LBS_WANTKEYBOARDINPUTLBS_WANTKEYBOARDINPUT樣式樣式 的列表框的的列表框的WM_KEYDOWNWM_KEYDOWN能被替換的能被替換的CListBoxCListBox類類的虛擬方法的虛擬方法第12頁/共38頁第11頁/共38頁第十二頁,共38頁。創(chuàng)建創(chuàng)建(chungjin)和初始化和初始化CListBox對象對象(1) 用用C+關(guān)鍵字關(guān)鍵字new和構(gòu)造函數(shù)和構(gòu)造函數(shù)CLis
21、tBox:CListBox() 為為CListBox對象分配一個對象分配一個(y )實例。實例。例如,下面代碼分配一個例如,下面代碼分配一個CListBox對象并返回指向該對象的指針:對象并返回指向該對象的指針: ClistBox *pMyListBox=new CListBox; 指針指針pMyListBox用用CListBox:Create()方法進(jìn)行初始化。方法進(jìn)行初始化。該方法聲明如下:該方法聲明如下: BOOL Create ( DWORD dwStyle, / dwStyle是列表框控件的窗口樣式是列表框控件的窗口樣式 const Recy& rect, / rect是一個
22、矩形,它指明控件的大小和位置是一個矩形,它指明控件的大小和位置(wi zhi) CWnd* pParentWnd, / pParentWnd是指向控件所有者的指針是指向控件所有者的指針 UINT nID / nID是父窗口用來與列表框通信的控件標(biāo)識是父窗口用來與列表框通信的控件標(biāo)識 );(2) 初始化初始化CListBoxCListBox對象并賦與它一個對象并賦與它一個Windows列表框,列表框, 通過方法通過方法CListBox:Create()CListBox:Create()設(shè)置列表框的參數(shù)和樣式。設(shè)置列表框的參數(shù)和樣式。第13頁/共38頁第12頁/共38頁第十三頁,共38頁。第14頁
23、/共38頁第13頁/共38頁第十四頁,共38頁。1. 應(yīng)用程序的界面設(shè)計應(yīng)用程序的界面設(shè)計單選按鈕組單選按鈕組的的IDID都為都為IDC_STATICIDC_STATIC,說明,說明不同的控件不同的控件可以有可以有相同相同的的IDID。因為單選按。因為單選按鈕組只是用來顯示一組內(nèi)容的鈕組只是用來顯示一組內(nèi)容的屬性屬性, ,無具體操作無具體操作#define IDC_Age1_RADIO 1015#define IDC_Age1_RADIO 1015#define IDC_Age2_RADIO 1016#define IDC_Age2_RADIO 1016#define IDC_Age3_RAD
24、IO 1017#define IDC_Age3_RADIO 1017#define IDC_Boy_RADIO #define IDC_Boy_RADIO 10231023#define IDC_Girl_RADIO #define IDC_Girl_RADIO 10241024同一組單選按鈕同一組單選按鈕必須必須一個接一個一個接一個地放進(jìn)地放進(jìn)對話框中對話框中中間不能中斷中間不能中斷對于對于成組成組的單選按鈕,的單選按鈕,只在每組的第一個按鈕只在每組的第一個按鈕的屬性窗口中選中的屬性窗口中選中Group第15頁/共38頁第14頁/共38頁第十五頁,共38頁。2. 應(yīng)用程序的代碼應(yīng)用程序的代碼
25、(di m)編程部分編程部分 控控件件及及其其連連接接的的變變量量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 te eE Ed di it tC CE Ed di i
26、t 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 ID DC C_ _R Re es su ul lt t
27、_ _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 OR RD D_ _C CO OM MB BO Om m
28、_ _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第16頁/共38頁第15頁/共38頁第十六頁,共38頁。 方法方法(fngf)的實現(xiàn)的實現(xiàn) 控控件件的的連連接接方方法法ID方方法法IDC_DATE_CHECKOnDateCheck()IDC_TIME_CHECKOnTimeCheck()IDC_EN
29、ABLE_BUTTONOnEnableButton()IDC_DISABLE_BUTTONOnDisableButton()IDC_SHOW_BUTTONOnShowButton()IDC_HIDE_BUTTONOnHideButton()IDC_Show_Sex_Age_BUTTONOnShowSexAgeButton()IDC_SHOW_COMBO_BUTTONOnShowComboButton()IED_EXIT_BUTTONOnExitButton()第17頁/共38頁第16頁/共38頁第十七頁,共38頁。為復(fù)選框為復(fù)選框IDC_TIME_CHECK添加添加(tin ji)代碼代碼vo
30、id CSELECTBOXDlg:OnTimeCheck() void CSELECTBOXDlg:OnTimeCheck() / / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼 UpdateData(TRUE); UpdateData(TRUE); if(m_TimeCheck=TRUE) if(m_TimeCheck=TRUE) CTime tNow; CTime tNow; tNow=CTime:GetCurrentTime(); tNow=CTime:GetCurrentTime(); CString sNow=tNow.Format(%I:%M:%S); CString s
31、Now=tNow.Format(%I:%M:%S); m_TimeEdit.SetSel(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(); UpdateData(FALSE);UpdateData(FALSE); 其中函數(shù)其中函數(shù)(hnsh)Form
32、at(hnsh)Format的參數(shù)的參數(shù)%I%I是時間的小時表示法(是時間的小時表示法(0101到到1212),),%m%m是分是分的表示法(的表示法(0000到到5959),),%S%S是秒的表示法(是秒的表示法(0000到到5959)第18頁/共38頁第17頁/共38頁第十八頁,共38頁。給給Enable按鈕添加按鈕添加(tin ji)代碼代碼OnEnableButton()方法方法(fngf)的實現(xiàn)代碼如下:的實現(xiàn)代碼如下:void CSELECTBOXDlg:OnEnableButton() / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始GetDlg
33、Item(IDC_DATE_CHECK)-EnableWindow(TRUE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(TRUE);m_DateEdit.EnableWindow(TRUE);m_TimeEdit.EnableWindow(TRUE);/添加代碼結(jié)束添加代碼結(jié)束第19頁/共38頁第18頁/共38頁第十九頁,共38頁。為為Disable按鈕連接按鈕連接(linji)代碼代碼 OnDisableButton()方法的實現(xiàn)代碼如下()方法的實現(xiàn)代碼如下(rxi):void CSELECTBOXDlg:OnDisableButton() / 在此
34、處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始GetDlgItem(IDC_DATE_CHECK)-EnableWindow(FALSE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(FALSE);m_DateEdit.EnableWindow(FALSE);m_TimeEdit.EnableWindow(FALSE);/添加代碼結(jié)束添加代碼結(jié)束第20頁/共38頁第19頁/共38頁第二十頁,共38頁。為為Show Again按鈕添加按鈕添加(tin ji)代碼代碼在函數(shù)在函數(shù)OnShowButton()方法中添加方法中添加(tin
35、 ji)實現(xiàn)代碼如下:實現(xiàn)代碼如下:void CSELECTBOXDlg:OnShowButton() / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加添加(tin ji)代碼開始代碼開始GetDlgItem(IDC_DATE_CHECK)-EnableWindow(SW_SHOW);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_SHOW);GetDlgItem(IDC_DATE_EDIT)-EnableWindow(SW_SHOW);m_DateEdit.ShowWindow(SW_SHOW);GetDlgItem(IDC_TIME_ED
36、IT)-EnableWindow(SW_SHOW);m_TimeEdit.ShowWindow(SW_SHOW); /添加添加(tin ji)代碼結(jié)束代碼結(jié)束第21頁/共38頁第20頁/共38頁第二十一頁,共38頁。為為Hide the Clock Setting按鈕添加實現(xiàn)按鈕添加實現(xiàn)(shxin)代碼代碼函數(shù)函數(shù)OnHideButton()方法中輸入以下實現(xiàn)代碼:方法中輸入以下實現(xiàn)代碼:void CSELECTBOXDlg:OnHideButton() / 在此處加入控件通知句柄代碼在此處加入控件通知句柄代碼/添加代碼開始添加代碼開始GetDlgItem(IDC_DATE_CHECK)-E
37、nableWindow(SW_HIDE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_HIDE);m_DateEdit.ShowWindow(SW_HIDE);m_TimeEdit.ShowWindow(SW_HIDE);/添加代碼結(jié)束添加代碼結(jié)束函數(shù)函數(shù)ShowWindow()是基類是基類CWnd的成員函數(shù),它表示是否顯示對象窗的成員函數(shù),它表示是否顯示對象窗口口(chungku),參數(shù),參數(shù)SW_SHOW表示顯示,表示顯示,SW_HIDE表示隱藏。表示隱藏。第22頁/共38頁第21頁/共38頁第二十二頁,共38頁。給給Show_the_Sex_an
38、d_Age按鈕添加按鈕添加(tin ji)代碼代碼OnShowSexAgeButton()方法的實現(xiàn)代碼如下:方法的實現(xiàn)代碼如下:void CSELECTBOXDlg:OnShowSexAgeBUTTON() / 在此處加入在此處加入(jir)控件通知句柄代碼控件通知句柄代碼 char sEdit50; int iSexRADIO; int iAgeRADIO; iSexRADIO=GetCheckedRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO); if(iSexRADIO=IDC_Boy_RADIO) strcpy(sEdit,The boys age
39、is); if(iSexRADIO=IDC_Girl_RADIO) strcpy(sEdit,The girls age is); iAgeRADIO=GetCheckedRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO); if(iAgeRADIO=IDC_Age1_RADIO) strcat(sEdit, great than 20); if(iAgeRADIO=IDC_Age2_RADIO) strcat(sEdit, between 15 and 20); if(iAgeRADIO=IDC_Age3_RADIO) strcat(sEdit, less
40、than 15); m_ResultEdit.SetSel(0,-1); m_ResultEdit.ReplaceSel(sEdit);第23頁/共38頁第22頁/共38頁第二十三頁,共38頁。為為Show_Combo按鈕添加按鈕添加(tin ji)代碼代碼OnShowComboButton()方法方法(fngf)的實現(xiàn)的代碼如下:的實現(xiàn)的代碼如下:void CSELECTBOXDlg:OnShowComboButton() UpdateData(TRUE); char sCourseEdit30; char sRecordEdit15; int iCourseRadio; iCourseRa
41、dio=GetCheckedRadioButton(IDC_ENGLISH_RADIO,IDC_NATURE_RADIO); if(iCourseRadio=IDC_ENGLISH_RADIO) strcpy(sCourseEdit,English record is ); if(iCourseRadio=IDC_COMPUTER_RADIO)strcpy(sCourseEdit,Computer record is ); if(iCourseRadio=IDC_NATURE_RADIO)strcpy(sCourseEdit,Natural record is ); m_Record.GetW
42、indowText(sRecordEdit,15); strcat(sCourseEdit,); strcat(sCourseEdit,sRecordEdit); m_ComboEdit=_T(sCourseEdit); UpdateData(FALSE);第24頁/共38頁第23頁/共38頁第二十四頁,共38頁。給給OnExitButton()方法方法(fngf)添加代碼添加代碼OnExitButton()的實現(xiàn)代碼如下:的實現(xiàn)代碼如下:void CSELECTBOXDlg:OnExitButton() / 在此處加入控件通知在此處加入控件通知(tngzh)句柄句柄代碼代碼/添加代碼開始添加
43、代碼開始OnOK();/添加代碼結(jié)束添加代碼結(jié)束第25頁/共38頁第24頁/共38頁第二十五頁,共38頁。初始化單選按鈕初始化單選按鈕BOOL CSELECTBOXDlg:OnInitDialog()BOOL CSELECTBOXDlg:OnInitDialog()CDialog:OnInitDialog();CDialog:OnInitDialog(); / IDM_ABOUTBOX must be in the system command range. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUT
44、BOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX 0 xF000); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,s
45、trAboutMenu); 第26頁/共38頁第25頁/共38頁第二十六頁,共38頁。SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, TRUE);/ Set big icon/ Set big icon SetIcon(m_hIcon, FALSE); SetIcon(m_hIcon, FALSE);/ Set small icon/ Set small icon/ / 在此加入在此加入(jir)(jir)其他初始化代碼其他初始化代碼(Add extra initialization here)(Add extra initialization here) Ch
46、eckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO,IDC_Age2_RADIO); CheckRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO,IDC_Age2_RADIO); UpdateData(FALSE); UpdateData(FALSE); m_English=0;
47、 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(-1,95); UpdateData(FALSE); UpdateData(FALSE); return TRUE;/return TRUE unless you set the
48、focus return TRUE;/return TRUE unless you set the focus toto a control a control 第27頁/共38頁第26頁/共38頁第二十七頁,共38頁。如圖創(chuàng)建應(yīng)用程序,在如圖創(chuàng)建應(yīng)用程序,在“形狀形狀”列表框中選擇要繪制圖形,在列表框中選擇要繪制圖形,在“筆顏色筆顏色”下拉列表框選下拉列表框選擇畫筆的顏色,在擇畫筆的顏色,在“刷子顏色刷子顏色”下拉列表框中選擇畫刷的顏色。在下拉列表框中選擇畫刷的顏色。在“線型線型”組合框選擇組合框選擇畫筆的線型,在畫筆的線型,在“填充填充(tinchng)(tinchng)類型類型”中選擇畫
49、刷填充中選擇畫刷填充(tinchng)(tinchng)類型。單擊類型。單擊“繪繪圖圖” ” 按鈕按照前面的選項繪制圖形,單擊按鈕按照前面的選項繪制圖形,單擊“退出退出”按鈕退出程序。按鈕退出程序。第28頁/共38頁第27頁/共38頁第二十八頁,共38頁。靜態(tài)文本靜態(tài)文本(wnbn) IDC_STATIC(wnbn) IDC_STATIC 形狀形狀列表框列表框 IDC_LIST_SHAPE IDC_LIST_SHAPE靜態(tài)文本靜態(tài)文本 IDC_STATIC IDC_STATIC 刷子刷子(shu zi)(shu zi)顏顏色色下拉列表框下拉列表框 IDC_COMBO_BRUSHCOLOR ID
50、C_COMBO_BRUSHCOLOR靜態(tài)文本靜態(tài)文本 IDC_STATICIDC_STATIC 筆顏色筆顏色下拉列表框下拉列表框 IDC_COMBO_PENCOLORIDC_COMBO_PENCOLOR“筆顏色筆顏色”下拉列表框下拉列表框-單擊單擊鼠標(biāo)右鍵鼠標(biāo)右鍵-Properties-Data選項卡選項卡-輸入顏色輸入顏色(輸完一行輸完一行(yxng)后,后,按下按下Ctrl+Enter鍵鍵)。同理處理同理處理“畫刷顏色畫刷顏色”下拉列表下拉列表框框第29頁/共38頁第28頁/共38頁第二十九頁,共38頁。 name ID Caption name ID Caption組合組合(zh)(zh
51、)框框 IDC_STATIC IDC_STATIC 線型線型單選按鈕單選按鈕 IDC_RADIO_SOLID Solid IDC_RADIO_SOLID Solid單選按鈕單選按鈕 IDC_RADIO_DASH Dash IDC_RADIO_DASH Dash單選按鈕單選按鈕 IDC_RADIO_DOT Dot IDC_RADIO_DOT Dot單選按鈕單選按鈕 IDC_RADIO_DASHDOT DashDot IDC_RADIO_DASHDOT DashDotname ID Captionname ID Caption組合框組合框 IDC_STATIC IDC_STATIC 填充填充(ti
52、nchng)(tinchng)類型類型單選按鈕單選按鈕 IDC_RADIO_SOLIDBRUSH SolidBrush IDC_RADIO_SOLIDBRUSH SolidBrush單選按鈕單選按鈕 IDC_RADIO_CROSS IDC_RADIO_CROSSCrossCross單選按鈕單選按鈕 IDC_RADIO_PDIAGONAL PDiagonal IDC_RADIO_PDIAGONAL PDiagonal單選按鈕單選按鈕 IDC_RADIO_BDIAGONAL BDiagonal IDC_RADIO_BDIAGONAL BDiagonalSolid -Solid -鼠標(biāo)右鍵鼠標(biāo)右鍵
53、- -Properties-Properties-選中選中GroupGroup選項。注選項。注意創(chuàng)建單選按鈕時要按照意創(chuàng)建單選按鈕時要按照(nzho)(nzho)圖中從上到下的順序,這樣保證了圖中從上到下的順序,這樣保證了單選按鈕的單選按鈕的IDID值是連續(xù)的,才能保值是連續(xù)的,才能保證兩組單選按鈕的互斥性。證兩組單選按鈕的互斥性。下壓式按鈕下壓式按鈕 IDC_BTN_DRAWIDC_BTN_DRAW繪制繪制下壓式按鈕下壓式按鈕 IDOKIDOK退出退出第30頁/共38頁第29頁/共38頁第三十頁,共38頁。 為對話框中控件連接變量為對話框中控件連接變量Control IdsControl I
54、ds變量類型變量類型(lixng)(lixng)變量名稱變量名稱IDC_LIST_SHAPEIDC_LIST_SHAPECListBoxCListBoxm_ListShapem_ListShapeIDC_COMBO_PENCOLORIDC_COMBO_PENCOLORCComboBoxCComboBox m_ComboPenColorm_ComboPenColorIDC_COMBO_BRUSHCOLORIDC_COMBO_BRUSHCOLORCComboBoxCComboBox m_ComboBrushColorm_ComboBrushColor在文件在文件14_8Dlg14_8Dlg中的消息
55、處理函數(shù)中的消息處理函數(shù)OnInitDialog()OnInitDialog()中加入中加入(jir)(jir)代碼如下:代碼如下:m_ListShape.AddString(Line);m_ListShape.AddString(Line);m_ListShape.AddString(Circle);m_ListShape.AddString(Circle);m_ListShape.AddString(Rectangle);m_ListShape.AddString(Rectangle);m_ListShape.AddString(RoundRectangle);m_ListShape.Ad
56、dString(RoundRectangle);調(diào)用列表框類成員函數(shù)調(diào)用列表框類成員函數(shù)AddString()AddString()給列表框加入給列表框加入(jir)(jir)選項,完成列表框的初始化選項,完成列表框的初始化第31頁/共38頁第30頁/共38頁第三十一頁,共38頁。在在WorkspaceWorkspace窗口中,選擇窗口中,選擇ClassViewClassView卡,在類卡,在類CMy14_8DlgCMy14_8Dlg上單擊鼠標(biāo)右鍵,選擇上單擊鼠標(biāo)右鍵,選擇Add Add member variablemember variable菜單項,加入菜單項,加入publicpubli
57、c型變量如下所示:型變量如下所示:變量類型變量類型 變量名稱變量名稱 說明說明intint m_nPenStyle m_nPenStyle 標(biāo)志標(biāo)志(biozh)(biozh)由由“線型線型”組合框中所選擇的組合框中所選擇的畫筆的類型畫筆的類型intint m_nBrushStyle m_nBrushStyle 標(biāo)志標(biāo)志(biozh)(biozh)由由“填充類型填充類型”組合框中所選擇的畫刷組合框中所選擇的畫刷類型類型COLORREF m_crPenColor COLORREF m_crPenColor 標(biāo)志標(biāo)志(biozh)“(biozh)“筆顏色筆顏色”列表框中所選擇的畫筆顏色列表框中所選
58、擇的畫筆顏色COLORREF m_crBrushColor COLORREF m_crBrushColor 標(biāo)志標(biāo)志(biozh)“(biozh)“刷子顏色刷子顏色”列表框中所選擇的畫刷顏色列表框中所選擇的畫刷顏色第32頁/共38頁第31頁/共38頁第三十二頁,共38頁。在在CMy14_8Dlg.cppCMy14_8Dlg.cpp的的OnInitDialog()OnInitDialog()函數(shù)中加入代碼如下:函數(shù)中加入代碼如下:m_crPenColor = RGB(255,0,0);m_crPenColor = RGB(255,0,0);/默認(rèn)筆顏色默認(rèn)筆顏色m_crBrushColor =
59、RGB(255,0,0);m_crBrushColor = RGB(255,0,0);/默認(rèn)刷顏色默認(rèn)刷顏色m_nPenStyle = PS_SOLID;m_nPenStyle = PS_SOLID;/默認(rèn)筆樣式默認(rèn)筆樣式m_nBrushStyle = 0;m_nBrushStyle = 0;/默認(rèn)刷樣式為默認(rèn)刷樣式為SolidSolidm_ComboPenColor.SetCurSel(0);m_ComboPenColor.SetCurSel(0);/設(shè)置設(shè)置PenPen組合框的當(dāng)前選項組合框的當(dāng)前選項m_ComboBrushColor.SetCurSel(0);m_ComboBrushCo
60、lor.SetCurSel(0); /設(shè)置設(shè)置BrushBrush組合框的當(dāng)前選項組合框的當(dāng)前選項m_ListShape.SetCurSel(0);m_ListShape.SetCurSel(0);/設(shè)置默認(rèn)的設(shè)置默認(rèn)的ShapeShape/設(shè)置單選按鈕按鈕的初始狀態(tài)設(shè)置單選按鈕按鈕的初始狀態(tài)CheckRadioButton(IDC_RADIO_SOLID,IDC_RADIO_DASHDOT,IDC_RADIO_SOLID);CheckRadioButton(IDC_RADIO_SOLID,IDC_RADIO_DASHDOT,IDC_RADIO_SOLID);CheckRadioButton(IDC_RADIO_S
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 造紙原料供應(yīng)合同
- 臨床試驗數(shù)據(jù)成果權(quán)益共享開發(fā)合同
- 公司個人借款合同2024(30篇)
- 2024年學(xué)校保安年終工作總結(jié)范文(2篇)
- 地方天然氣車輛監(jiān)管方案范例(2篇)
- 中學(xué)衛(wèi)生保潔制度(2篇)
- 校園藝術(shù)節(jié)活動策劃方案樣本(2篇)
- 云數(shù)據(jù)目錄架構(gòu)-洞察分析
- 養(yǎng)老院各項管理制度(2篇)
- 園林綠化管理處各項管理制度(4篇)
- 2024-2030年中國永磁耦合器行業(yè)經(jīng)營優(yōu)勢及競爭對手現(xiàn)狀調(diào)研報告
- 福建省泉州市安溪縣實驗小學(xué)2023-2024學(xué)年三年級上學(xué)期素養(yǎng)比賽語文試卷
- 法律邏輯簡單學(xué)(山東聯(lián)盟)智慧樹知到期末考試答案章節(jié)答案2024年曲阜師范大學(xué)
- 小學(xué)二年級上冊數(shù)學(xué)-數(shù)角的個數(shù)專項練習(xí)
- 園林設(shè)施維護(hù)方案
- 醫(yī)療器械質(zhì)量安全風(fēng)險會商管理制度
- 220kV~750kV油浸式電力變壓器使用技術(shù)條件
- MOOC 生物化學(xué)與分子生物學(xué)-中國藥科大學(xué) 中國大學(xué)慕課答案
- 第2課+古代希臘羅馬【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 金屬屋面工程防水技術(shù)規(guī)程
- 人工智能增強(qiáng)戰(zhàn)略規(guī)劃
評論
0/150
提交評論