freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第4章常用控件-文庫(kù)吧

2024-09-21 13:38 本頁(yè)面


【正文】 文件,可以發(fā)現(xiàn) MFC ClassWizard對(duì)上述操作作了以下三方面的修改。 控件的數(shù)據(jù)交換 (DDX)和數(shù)據(jù)校驗(yàn) (DDV) 在 DoDataExchange函數(shù)體內(nèi), 添加了控件的 DDX/DDV代碼,它們都是一些以 DDV_或 DDX_ 開頭的函數(shù)調(diào)用。 void CEx_DlgCtrlsDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX)。 // 調(diào)用此函數(shù)作為 DDX的開始 //{{AFX_DATA_MAP(CEx_DlgCtrlsDlg) DDX_Control(pDX, IDC_BUTTON1, m_RelBtn)。 DDX_Text(pDX, IDC_EDIT1, m_strEdit)。 // 將控件 IDC_EDIT1與 m_strEdit進(jìn)行數(shù)據(jù)交換 DDV_MaxChars(pDX, m_strEdit, 20)。 // 校驗(yàn) m_strEdit的最大字符個(gè)數(shù)不超過 20 //}}AFX_DATA_MAP } 控件的數(shù)據(jù)交換 (DDX)和數(shù)據(jù)校驗(yàn) (DDV) (5) 當(dāng)為一個(gè)控件定義一個(gè)關(guān)聯(lián)的數(shù)據(jù)變量后,可以使用CWnd::UpdateData函數(shù)實(shí)現(xiàn)控件數(shù)據(jù)的輸入和讀取。將CEx_DlgCtrlsDlg::OnButton1 修改成下列代碼: void CEx_DlgCtrlsDlg::OnButton1() { UpdateData()。 // 沒有參數(shù),表示使用的是默認(rèn)參數(shù)值 TRUE (m_strEdit)。 } UpdateData函數(shù)只有一個(gè)為 TRUE或 FALSE的參數(shù)。調(diào)用 UpdateData(FALSE)時(shí),數(shù)據(jù)由控件相關(guān)聯(lián)的成員變量向控件傳輸,當(dāng)調(diào)用 UpdateData(TRUE)或不帶參數(shù)的UpdateData時(shí),數(shù)據(jù)從控件向相關(guān)聯(lián)的成員變量復(fù)制。 控件的數(shù)據(jù)交換 (DDX)和數(shù)據(jù)校驗(yàn) (DDV) (6) 運(yùn)行該程序,當(dāng)在編輯框中輸入“ Hello”后,單擊 [Button1]按鈕, OnButton1函數(shù)中的 UpdateData將編輯框內(nèi)容保存到 m_strEdit變量中,從而執(zhí)行下一條語(yǔ)句后按鈕的名稱就變成了編輯框控件中的內(nèi)容“ Hello”。 使用控件的數(shù)據(jù)成員變量: 靜態(tài)控件和按鈕 靜態(tài)控件和按鈕是 Windows最基本的控件之一。 靜態(tài)控件是用來顯示一個(gè)字符串、框、矩形、圖標(biāo) ,位圖或增 強(qiáng)的圖元文件。 在對(duì)話框編輯器的控件工具欄中,屬于靜態(tài)控件的有:靜態(tài)文本 ()、組框 ()和靜態(tài)圖片 ()三種。 靜態(tài)圖片控件的 General屬性對(duì)話框: 靜態(tài)控件 靜態(tài)控件和按鈕 靜態(tài)圖片控件的一般屬性對(duì)話框,表列出了其一般屬性的各個(gè)項(xiàng)的含義。 項(xiàng) 目 說 明 ID 控件的標(biāo)識(shí)符。每種控件都有默認(rèn)的 ID,例如添加的第一個(gè)按鈕 IDC_BUTTON1 靜態(tài)控件為 IDC_STATIC。 Group 指定控件組中的第一個(gè)控件,如果該項(xiàng)未被選中,則此控件后的所有控件均被看 同一組。成組的目的是可以讓用戶用鍵盤方向鍵在同一組控件中進(jìn)行切換。 Help ID 若該項(xiàng)被選中,則為該控件建立一個(gè)上下文相關(guān)的幫助標(biāo)識(shí)符。 Disabled 指定控件初始化時(shí)是否禁用。 TabStop 若該項(xiàng)被選中,則用戶可以使用 Tab鍵來選擇控件 類型 (Type) 圖片類型,用戶可以從中選擇 Frame(框 )、 Rectangle(矩形區(qū)域 )、 on(標(biāo) )Bitmap 位圖 )、 Enhanced Metafile(增強(qiáng)圖元文件,它是各種繪圖命令的集合 ) 圖像 (Image) 當(dāng)圖片類型為 icon或 bitmap時(shí),通過此框可選擇指定的資源 ID號(hào) 顏色 (Color) 設(shè)置 Frame和 Rectangle的顏色,它可以是 black(黑色 )、 white(白色 )、 gray(灰色 ) 者是具有 3D外觀的 etched(蝕刻風(fēng)格 ) 靜態(tài)控件和按鈕 在屬性對(duì)話框中,用戶可以選擇圖片“類型”、“圖像”兩個(gè)組合框中的有關(guān)選項(xiàng)內(nèi)容,并可將應(yīng)用程序資源中的圖標(biāo)、位圖等內(nèi)容顯示在該靜態(tài)圖片控件中。 ( 1) 打開 Ex_DlgCtrls項(xiàng)目中的對(duì)話框資源模板IDD_EX_DLIDD_EX_DLGCTRLS_DIALOG。 ( 2) 在該對(duì)話框適當(dāng)?shù)奈恢锰幪砑右粋€(gè)靜態(tài)圖片控件,右擊該控件,從彈出的快捷菜單中選擇“屬性”,彈出如圖所示的屬性對(duì)話框。 靜態(tài)控件和按鈕 ( 3)在屬性對(duì)話框中,選擇“顏色”類型為 Etched,然后關(guān)閉屬性對(duì)話框。 ( 4)將鼠標(biāo)移動(dòng)到添加的靜態(tài)圖片控件的右下角位置,使鼠標(biāo)指針變成 拖動(dòng) 鼠標(biāo)使控件的大小變成一條水平線,單擊對(duì)話框測(cè)試按扭,則結(jié)果如圖所示。 , 水平蝕刻線 按鈕 在 Windows中所用的按鈕是用來實(shí)現(xiàn)一種開與關(guān)的輸入,常見的按鈕有三種類型:按鍵按鈕 單選按鈕 復(fù)選框按鈕 按鈕的不同類型: 1. 不同按鈕的作用 按鍵按鈕通??梢粤⒓串a(chǎn)生某個(gè)動(dòng)作,執(zhí)行某個(gè)命令,因此也常被稱為命令按鈕。 按鈕有兩種風(fēng)格:標(biāo)準(zhǔn)按鍵按鈕 默認(rèn)按鍵按鈕 button)”項(xiàng)。 按鈕 復(fù)選框的外形是在文本前有空心方框,當(dāng)被選中時(shí),復(fù)選框中就加上一個(gè) “” 標(biāo)記,通常復(fù)選框只有選中和未選中兩種狀態(tài),若復(fù)選框前面有一個(gè)灰色是“ “ ”,這樣的復(fù)選框是三態(tài)復(fù)選框 。 2. 按鈕的消息 在按鈕映射的消息中,常見只有兩個(gè) BN_CLICKED和 BN_DOUBLE CLICKED(雙擊按鈕 )。 3. 按鈕選中操作 最常用的按鈕操作是設(shè)置或獲取一個(gè)按鈕或多個(gè)按鈕的選中狀態(tài)。 CButton類的成員函數(shù) SetCheck和 GetCheck分別用來設(shè)置或獲取指定按鈕的選中狀態(tài) 。 示例:制作問卷調(diào)查 問卷調(diào)查是日常生活中經(jīng)常遇到的調(diào)查方式。 本例用到了組框、靜態(tài)文本、單選按鈕、復(fù)選框等控件。需要通過 CheckRadioButton函數(shù)來設(shè)置同組單選按鈕的通過 GetDlgItemText 或 GetWindowText獲取選中控件的窗口文本。 示例:制作問卷調(diào)查 [例 Ex_Research] 制作問卷調(diào)查 (1) 創(chuàng)建一個(gè)默認(rèn)的基于對(duì)話框應(yīng)用 Ex_Research。 (2) Visual C++會(huì)打開對(duì)話框編輯器并顯示對(duì)話框資源模板。 (3) 調(diào)整對(duì)話框的大小,刪除對(duì)話框中間的 “ TODO: 在這里設(shè)置對(duì)話控制。 (4) 右擊添加的組框控件,從彈出的快捷菜單中選擇“屬性”菜單,在屬性對(duì)話框窗口中可以看到它的 ID為默認(rèn)的IDC_STATIC。 在組框控件的 Styles屬性中,“水平對(duì)齊”屬性用來指定文本在頂部的左邊 (Left)、居中 (Center)還是右邊 (Right)。默認(rèn) (Default)選項(xiàng)表示左對(duì)齊。 示例:制作問卷調(diào)查 (5) 在組框內(nèi)添加 4個(gè)單選按鈕,默認(rèn)的 ID依次為_RADIO IDC_RADIO IDC_RADIO3和IDC_RADIO4。 示例:制作問卷調(diào)查 (6)接下來添加一個(gè)靜態(tài)文本,標(biāo)題設(shè)為“你使用的接入方式:然后在其下再添加 4個(gè)單選按鈕,標(biāo)題分別是“ FTTL或 ADSL”、“單位LAN”、“撥號(hào) 56K”和“其他”,并將相應(yīng)的 ID屬性依次改成:IDC_CM_FTTL、 DC_CM_LAN、 IDC_CM_56K和 IDC_CM_OTHER。 再添加單選框圖 : 示例:制作問卷調(diào)查 (7)對(duì)話框的下方,再添加一個(gè)組框控件,標(biāo)題為“你上網(wǎng)主要是”。添加四個(gè)復(fù)選框,其標(biāo)題分別為“收發(fā)郵件”、“瀏覽資料”、“聊天游戲”和“其他”, ID分別為 IDC_DO_POP、IDC_DO_GAME和 IDC_DO_OTHER。 示例:制作問卷調(diào)查 (8) 單擊工具欄上的測(cè)試對(duì)話框按鈕 對(duì)話框測(cè)試后,可以發(fā)現(xiàn):順序添加的這 8個(gè)單選按鈕全部變成一組,在這組中只有一個(gè)單選按鈕被選中,這不符合我們的本意。解決這個(gè)問題的最好的辦法是將每一組中的第一個(gè)單選按鈕的 Group(組 )屬性選中。 。 (9)分別將這二個(gè)問題中的第一個(gè)單選按鈕的 Group(組 )屬性均選中。 圖所示是對(duì)第二個(gè)問題設(shè)置的結(jié)果。 示例:制作問卷調(diào)查 (10) 單擊對(duì)話框編輯器工具欄上的切換輔助線按鈕,然后將 對(duì)話框中的控件調(diào)整到輔助線以內(nèi),并適當(dāng)對(duì)其他控件進(jìn)行 調(diào)整。整個(gè)問卷調(diào)查的對(duì)話框就設(shè)計(jì)好了,單擊工具欄上的 測(cè)試對(duì)話框按鈕。 示例:制作問卷調(diào)查 5. 完善代碼 (1) 將項(xiàng)目工作區(qū)切換到 ClassView(類視圖 )頁(yè)面,展開類CEx_ResearchDlg的所有成員,雙擊 OnInitDialog函數(shù)名就會(huì)在文檔窗口中自動(dòng)定位到該函數(shù)的實(shí)現(xiàn)代碼處,在此函數(shù)添加下列初始化代碼: BOOL CEx_ResearchDlg::OnInitDialog() { CDialog::OnInitDialog()。 … CheckRadioButton(IDC_AGE_L18, IDC_AGE_M38, IDC_AGE_18T27)。 CheckRadioButton(IDC_CM_FTTL, IDC_CM_OTHER, IDC_CM_FTTL)。 CButton* pBtn = (CButton*)GetDlgItem(IDC_DO_POP)。 pBtnSetCheck(1)。 // 使“收發(fā)郵件”復(fù)選框選中 return TRUE。 } 示例:制作問卷調(diào)查 用 MFC ClassWizard在 CEx_ResearchDlg類中添加 IDOK按鈕BN_CLICKED消息映射,并添加下列代碼,使得用按 [確定 ]按鈕取用戶所作的選擇內(nèi)容。 void CEx_ResearchDlg::OnOK() { CString str, strCtrl。 // 定義兩個(gè)字符串變量, CString是操作字串的 MFC類 // 獲取第一個(gè)問題的用戶選擇 str = 你的年齡: 。 UINT nID = GetCheckedRadioButton( IDC_AGE_L18, IDC _AGE_M38)。 GetDlgItemText(nID, strCtrl)。 // 獲取指定控件的標(biāo)題文本 str = str + strCtrl。 // 獲取第二個(gè)問題的用戶選擇 示例:制作問卷調(diào)查 str = str + “\n你使用的接入方式: nID = GetCheckedRadioButton( IDC_CM_FTTL, IDC_CM_OTHER)。 GetDlgItemText(nID, strCtrl)。 // 獲取指定控件的標(biāo)題文本 str = str + strCtrl。 // 獲取第三個(gè)問題的用戶選擇 str = str + \n你上網(wǎng)主要是: \n。 UINT nCheckIDs[4] = {IDC_DO_POP, IDC_DO _READ, IDC_DO_GAME, IDC_DO_OTHER}。 CButton* pBtn。 for (int i=0。 i4。 i++) { pBtn = (CButton*)GetDlgItem(nCheckIDs[i])。 if ( pBtnGetCheck() ) { pBtnGetWindowText( strCtrl )。 str = str + strCtrl。 str = str + 。 } } MessageBox( str )。 CDialog::OnOK()。 } 示例:制作問卷調(diào)查 代碼中, GetDlgItemText是 CWnd類成員函數(shù)。 該函數(shù)有兩個(gè)參數(shù):第一個(gè)參數(shù)用來指定控件的標(biāo)識(shí) 第二個(gè)參數(shù)是返回的窗口文本。 函數(shù) GetWindowText的作用與 GetDlgItemText相同,也是獲取窗口的文本內(nèi)容。 (3) 編譯并運(yùn)行,出現(xiàn)“上網(wǎng)問卷調(diào)查”對(duì)話框,當(dāng)回答問題后,按
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1