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

正文內(nèi)容

[工學(xué)]visualc面向?qū)ο缶幊探坛痰?章對(duì)話框和標(biāo)準(zhǔn)控件(已修改)

2024-10-28 18:22 本頁(yè)面
 

【正文】 版權(quán)所有 復(fù)制必究 對(duì)話框 是 Windows應(yīng)用程序中一種常用的資源,其主要功能是輸出信息和接收用戶(hù)的輸入數(shù)據(jù)。 控件 是嵌入在對(duì)話框中或其它父窗口中的一個(gè)特殊的小窗口,它用于完成不同的輸入、輸出功能。 對(duì)話框與控件關(guān)系密切,在每個(gè)對(duì)話框上一般都有一些控件,對(duì)話框依靠這些控件與用戶(hù)進(jìn)行信息的交互。本章主要介紹對(duì)話框的工作原理和編程方法,并通過(guò)實(shí)例學(xué)習(xí)一些標(biāo)準(zhǔn)控件和公共控件的使用方法。 對(duì)話框概述 ?就用戶(hù)交互輸入功能而言,菜單和工具欄的功能是極其有限的。而對(duì)話框除了用來(lái)顯示提示信息 (如程序啟動(dòng)時(shí)顯示版權(quán)和運(yùn)行進(jìn)度信息 ),一個(gè)主要功能是用于接收用戶(hù)的輸入數(shù)據(jù)。 ?在 MFC中,對(duì)話框的功能被封裝在 CDialog類(lèi)中,而 CDialog類(lèi)是 CWnd類(lèi)的派生類(lèi)。作為窗口,對(duì)話框和其它窗口一樣具有窗口的一切功能。 ?對(duì)話框的一個(gè)典型應(yīng)用是通過(guò)菜單命令或工具欄按鈕打開(kāi)一個(gè)對(duì)話框,當(dāng)然,對(duì)話框也可以作為一個(gè)程序的主界面。 基于對(duì)話框的應(yīng)用程序 ?可以直接利用 MFC AppWizard向?qū)?chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序 , 這種程序運(yùn)行后首先出現(xiàn)一個(gè)對(duì)話框 。 在向?qū)У牡谝徊竭x擇 Dialog Based項(xiàng) 。 此時(shí) ,應(yīng)用程序向?qū)⒊霈F(xiàn)與單文檔和多文檔程序向?qū)Р煌牟僮鞑襟E , 因?yàn)閷?duì)話框應(yīng)用程序一般不包含文檔 , 故不支持?jǐn)?shù)據(jù)庫(kù)和復(fù)合文檔 。 ?按照對(duì)話框應(yīng)用程序向?qū)崾镜牟襟E進(jìn)行操作就得到一個(gè)對(duì)話框應(yīng)用程序項(xiàng)目 , 出現(xiàn)對(duì)話框編輯器和控件工具欄浮動(dòng)窗口 , 它們采用的是一種所見(jiàn)即所得的可視化工作方式 。 利用向?qū)?chuàng)建應(yīng)用程序的框架后 , 程序員可根據(jù)程序具體功能要求添加代碼 。 例 編寫(xiě)一個(gè)對(duì)話框應(yīng)用程序 MyDialog, 程序運(yùn)行后顯示一個(gè)對(duì)話框,并在對(duì)話框上顯示文本串。 1. 執(zhí)行 File|New命令出現(xiàn) New對(duì)話框 , 選擇 MFC AppWizard[exe]項(xiàng) , 輸入程序名 MyDialog, 單擊OK按鈕 。 在隨后出現(xiàn)的 MFC AppWizardStep 1對(duì)話框窗口中選擇 Dialog Based選項(xiàng) , 單擊 Finish按鈕就創(chuàng)建了應(yīng)用程序項(xiàng)目 , 并在 Developer Studio中打開(kāi)了對(duì)話框編輯器和控件工具欄 。 2. 去掉對(duì)話框中標(biāo)題為 “ TODO: 在這里設(shè)置對(duì)話控制 ” 的靜態(tài)文本控件 , 調(diào)整對(duì)話框大小 , 在成員函數(shù) CMyDialogDlg::OnPaint()中添加代碼 。 void CMyDialogDlg::OnPaint() { . . . . . . else { CPaintDC dc(this)。 (TRANSPARENT)。 (20, 50, 這是一個(gè)對(duì)話框應(yīng)用程序 ! )。 CDialog::OnPaint()。 } } 對(duì)話框類(lèi) CDialog MFC提供了一系列對(duì)話框類(lèi) , 并實(shí)現(xiàn)了對(duì)話框消息響應(yīng)和處理機(jī)制 。 CDialog類(lèi)是對(duì)話框類(lèi)中最重要的類(lèi) , 我們?cè)诔绦蛑袆?chuàng)建的對(duì)話框類(lèi)一般都是CDialog類(lèi)的派生類(lèi) 。 CDialog類(lèi)還是其它所有對(duì)話框類(lèi)的基類(lèi) , 其派生關(guān)系如下所示: CObject CCmdTarget CWnd CDialog 對(duì)話框類(lèi)為程序員提供了管理對(duì)話框的編程接口 。 CDialog類(lèi)從 CWnd類(lèi)派生而來(lái) , 所以它繼承了 CWnd類(lèi)的成員函數(shù) , 具有 CWnd類(lèi)的基本功能 ,可以編寫(xiě)代碼移動(dòng) 、 顯示或隱藏對(duì)話框 , 并能根據(jù)對(duì)話框的特點(diǎn)增加新的成員函數(shù) , 擴(kuò)展它的功能 。在你的 CDialog類(lèi)的派生類(lèi)中可以直接調(diào)用 CDialog類(lèi)的成員函數(shù) 。 大部分的成員函數(shù)是 虛函數(shù) , 可以在你的派生類(lèi)中重載 , 以實(shí)現(xiàn)特定的目的 。 除了CDialog類(lèi)成員函數(shù) , 類(lèi) CWnd和 CWinApp也提供了一些成員函數(shù)用于對(duì)話框的管理 。 有關(guān)對(duì)話框的常用處理函數(shù) CDialog::CDialog() 通過(guò)調(diào)用派生類(lèi)構(gòu)造函數(shù) , 根據(jù)對(duì)話框資源模板定義一個(gè)對(duì)話框 。 CDialog::DoModal() 激活 模態(tài)對(duì)話框 , 顯示對(duì)話框窗口 。 CDialog::Create() 根據(jù)對(duì)話框資源模板創(chuàng)建 非模態(tài)對(duì)話框 窗口 。 如果對(duì)話框不是 Visible屬性 , 還需通過(guò)調(diào)用 CWnd::ShowWindow()函數(shù)顯示非模態(tài)對(duì)話框窗口 。 CDialog::OnOk() 單擊 OK按鈕時(shí)調(diào)用該函數(shù) , 接收對(duì)話框輸入數(shù)據(jù) , 關(guān)閉對(duì)話框 。 CDialog::OnCancel() 單擊 Cancel按鈕或按 Esc鍵時(shí)調(diào)用該函數(shù) , 不接收對(duì)話框輸入數(shù)據(jù) , 關(guān)閉對(duì)話框 。 CDialog::OnInitDialog() WM_INITDIALOG 消息處理函數(shù) , 在調(diào)用 DoModal 或Create函數(shù)時(shí)系統(tǒng)發(fā)送 WM_INITDIALOG消息 , 在顯示對(duì)話框前調(diào)用該函數(shù)進(jìn)行初始化 。 CDialog::EndDialog() 用于關(guān)閉模態(tài)對(duì)話框窗口 。 CWnd::ShowWindow() 顯示或隱藏對(duì)話框窗口 CWnd::DestroyWindow() 關(guān)閉并銷(xiāo)毀非模態(tài)對(duì)話框 CWnd::UpdateData() 通過(guò)調(diào)用 DoDataExchange()設(shè)置或獲取對(duì)話框控件的數(shù)據(jù) CWnd::DoDataExchange() 被 UpdateData()調(diào)用以實(shí)現(xiàn) 對(duì)話框數(shù)據(jù)交換 , 不能直接調(diào)用 。 CWnd::GetWindowText() 獲取對(duì)話框窗口的標(biāo)題 CWnd::SetWindowText() 修改對(duì)話框窗口的標(biāo)題 CWnd::GetDlgItemText() 獲取對(duì)話框中控件的文本內(nèi)容 CWnd::SetDlgItemText() 設(shè)置對(duì)話框中控件的文本內(nèi)容 CWnd::GetDlgItem() 獲取控件或子窗口的指針 CWnd::MoveWindow() 用于移動(dòng)對(duì)話框窗口 CWnd::EnableWindow() 使窗口處于禁用或可用狀態(tài) 對(duì)話框數(shù)據(jù)交換 DDX和驗(yàn)證 DDV ? 在對(duì)話框中實(shí)現(xiàn)用戶(hù)數(shù)據(jù)輸入和輸出的一般方法是通過(guò) ClassWizard類(lèi)向?qū)?duì)話框控件與成員變量相關(guān)聯(lián) , 利用對(duì)話框數(shù)據(jù)交換DDX( Dialog Data Exchange) 和驗(yàn)證 DDV( Dialog Data Validation) 機(jī)制實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出 。 ? 當(dāng)利用 ClassWizard類(lèi)向?qū)砑映蓡T變量時(shí) ,用戶(hù)如果在窗口的左下角輸入數(shù)據(jù)的范圍 ,ClassWizard將自動(dòng)加入函數(shù) DDV的調(diào)用代碼 。 例如 , 當(dāng)添加一個(gè) UINT型的成員變量 m_nInput時(shí)指定它的最小值和最大值分別為 0和 100, 則ClassWizard類(lèi)向?qū)⒃诔蓡T函數(shù) DoDataExchange()中添加以下 DDV函數(shù)的調(diào)用語(yǔ)句: DDV_MinMaxUInt(pDX, m_nInput, 0, 100)。 程序運(yùn)行后 , 如果用戶(hù)的輸入數(shù)據(jù)超出 0~100的范圍 , DDV將顯示一個(gè) 提示信息對(duì)話框 ( 例 72c) , 提示用戶(hù)有效的輸入范圍 。 UpdateData()的用法 : 當(dāng)調(diào)用 UpdateData(TRUE)時(shí) , MFC通過(guò)調(diào)用DDX函數(shù)將數(shù)據(jù)從控件傳遞到關(guān)聯(lián)的成員變量;當(dāng)調(diào)用 UpdateData(FALSE) 時(shí) , MFC 通過(guò)調(diào) 用DDX函數(shù)將數(shù)據(jù)從成員變量 傳遞到關(guān)聯(lián)的的控件 。利用 UpdateData()函數(shù)實(shí)現(xiàn)了在刷新后重新獲取成員變量 。 注意: 表面上看程序并沒(méi)有調(diào)用 UpdateData(), 但是 ,當(dāng)程序調(diào)用 CDialog::DoModal()創(chuàng)建并顯示對(duì)話框時(shí) ,將自動(dòng)調(diào)用 CDialog::OnInitDialog()完成初始化
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1