對話框和控件_第1頁
對話框和控件_第2頁
對話框和控件_第3頁
對話框和控件_第4頁
對話框和控件_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、對話框和控件王建興對話框和控件的基本概念 對話框(Dialog)實際上是一個窗口。在MFC中,對話框的功能被封裝在了CDialog類中,CDialog類是CWnd類的派生類。 對話框分為模態(tài)對話框和非模態(tài)對話框兩種。 從MFC來看,一個對話框由兩部分組成:對話框模板資源 對話框類 與對話框有關(guān)的消息主要包括:WM_INITDIALOG消息和控件通知消息 對話框和控件的基本概念 控件的基本概念 控件(Control)是獨立的小部件,在對話框與用戶的交互過程中,控件擔(dān)任著主要角色??丶嶋H上都是窗口,所有的控件類都是CWnd類的派生類。控件通常是作為對話框的子窗口而創(chuàng)建的,控件也可以出現(xiàn)在視圖窗口

2、,工具條和狀態(tài)條中。 對話框模板的設(shè)計 【示例示例12-1】 對話框類的設(shè)計 完成對話框模板的設(shè)計后,就需要設(shè)計一個對話框類以實現(xiàn)對話框的功能。設(shè)計對話框類主要包括下面幾步:創(chuàng)建對話框類,該類應(yīng)從CDialog類派生;為對話框類加入與控件相對應(yīng)的成員變量;為對話框進行初始化工作;增加對控件通知消息的處理 對話框類的設(shè)計 為對話框類加入成員變量對話框需要有一組成員變量來存儲數(shù)據(jù)。 與控件對應(yīng)的成員變量即可以是一個數(shù)據(jù),也可以是一個控件對象 不同類的控件對應(yīng)的數(shù)據(jù)變量的類型往往是不一樣的,而且一個控件對應(yīng)的數(shù)據(jù)變量的類型也可能有多種。如表12-3 利用ClassWizard可以很方便地為對話框類C

3、RegisterDialog加入成員變量 。對話框初始化 對話框的初始化工作一般在構(gòu)造函數(shù)和OnInitDialog函數(shù)中完成。在構(gòu)造函數(shù)中的初始化主要是針對對話框的數(shù)據(jù)成員。 可以在OnInitDialog中做一些影響對話框外觀的初始化工作 對話框的數(shù)據(jù)交換機制 MFC提供了類CDataExchange來實現(xiàn)對話框類與控件之間的數(shù)據(jù)交換(DDX),該類還提供了數(shù)據(jù)有效機制(DDV) 。 當(dāng)程序需要交換數(shù)據(jù)時,調(diào)用CWnd:UpdateData。該函數(shù)只有一個布爾型參數(shù),它決定了數(shù)據(jù)傳送的方向。 對話框的運行機制 運行模態(tài)對話框有兩個步驟:在堆棧上以變量的形式構(gòu)建一個對話框?qū)ο?。調(diào)用CDial

4、og:DoModal ( )。 處理控件通知消息 問題有二:登錄完一個人的數(shù)據(jù)后,對話框就關(guān)閉了,若用戶有很多人的數(shù)據(jù)要輸入,則必須頻繁地打開對話框,很不方便。在登錄數(shù)據(jù)時,應(yīng)該使對話框一直處于打開狀態(tài)。登錄數(shù)據(jù)對話框分個人情況和單位情況兩組,若被調(diào)查人是下崗職工,則不必輸入單位情況。 處理控件通知消息 1 1、解決第一個問題。、解決第一個問題。 一種想法是修改原來的“確定(Y)”按鈕,使得當(dāng)用戶點擊該按鈕后,將數(shù)據(jù)輸出到視圖中,并且對話框不關(guān)閉,以便用戶輸入下一個數(shù)據(jù)。2 2、解決第二個問題。、解決第二個問題。解決該問題的關(guān)鍵在于當(dāng)用戶點擊“在職”或“下崗”單選按鈕時,程序要對收到的BN_CLICKED消息作出響應(yīng)。 為了對控件進行查詢和控制,在程序中采用了兩種訪問控件的方法。一種方法是直接利用ClassWizard提供的控件對象,例如m_ctrlIncome列表框?qū)ο蟆A?/p>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論