VC 60 第八章 自定義對話方塊

2021-07-23 16:35:18 字數 2126 閱讀 7970

第八章 自定義對話方塊

上一章我們介紹了系統提供的訊息框使用很方便,但是,訊息框只能夠輸出而不能接受使用者的輸入。例如,要求使用者輸入登陸號和密碼,就需要彈出乙個輸入對話方塊,這就需要我們自行設計。本章就介紹如何使用自己定製的對話方塊。

本章要點

如何定製自己的對話方塊,並把它加入到工程中去?

8.1 mycus.exe程式的介面和功能

本程式的主視窗(圖1)就出現三個按鈕,按[input text]按鈕彈出如圖2所示的對話方塊。

它有乙個編輯框,輸入資訊後關閉,資訊就傳遞到主視窗。再按[display it]就能夠在訊息框中顯示該資訊。

8.2 設計mycus.exe程式的介面和定製對話方塊

在應用程式嚮導中選mfc標準的對話方塊模式建立d:\myvc\ch08\mycus.exe。

設計主視窗。就三個按鈕,[input text]按鈕的id=idc_input_button,[display it]按鈕的id=idc_display_button。主視窗的標題取"mycus",id=idd_mycus_dialog。

定製乙個輸入對話方塊

在工作區的資源頁用右鍵點dialog,在彈出選單中選"insert dialog",這就新增了乙個新的對話方塊,並開啟編輯視窗和乙個預設的對話方塊框架。保留兩個預設的按鈕,並把其中的靜態文字的標題改為提示語「任意輸入一行文字」;如圖chap08-02的布局,新增乙個編輯框,設定id =idc_data_edit。新對話方塊的id=idd_input_dialog,標題為「輸入對話方塊」。

為定製對話方塊建立類並加入到工程中

在[檢視]選單開啟類嚮導,嚮導會自動開啟「新增類」的對話方塊,從中選擇"create a new class"建立新類;在下一步的輸入對話方塊中鍵入新類的名,我們選為"cinputdlg",基類就是預設的cdialog,**檔名會自動確定的。vc的類名的首字母都是大寫的c,第二個字母往往也大寫。按[確定]後就自動生產新類的兩個檔案inputdlg.cpp和inputdlg.h,在工作區的檔案頁你可以看到它,同時,在工作區的「類檢視」頁上也可以看到新類cinputdlg這一項。

8.3 編寫**

1 為定製對話方塊引進變數

為了使用這新對話方塊,我們需要為它定義乙個變數。這變數就是類cinputdlg的乙個物件,語句為

cinputdlg m_mydlg;

以後就可以使用函式

m_mydlg.domodal();

來開啟對話方塊了。

變數m_mydlg要在主對話方塊cmycusdlg的建構函式中宣告,而建構函式在標頭檔案mycusdlg.h中。(在工作區的檔案頁中)

class cmycusdlg : public cdialog

{// construction

public:

cmycusdlg(cwnd* pparent = null); 

// standard constructor

cinputdlg m_mydlg;

......

給新對話方塊的編輯框引進乙個字串型的變數m_dataedit,以後,在主視窗要使用它時就可用m_mydlg.m_dataedit來表示了。

最後給兩個按鈕編寫**,這就十分簡單了。輸入按鈕的**是

m_mydlg.domodal();

顯示按鈕內的**是:

messagebox(m_mydlg.m_dataedit,"來自輸入對話方塊的資訊",mb_okcancel);

**完成,編譯和執行。

—end—

思考和練習

1 為什麼要引進變數m_mydlg?為什麼不能通過類嚮導的新增變數功能來做?

2 設計乙個程式來演示要求使用者輸入帳號和密碼。

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...

第八章(筆記)

能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...

第八章 字典

d 空字典 d 這就是字典 d dict.fromkeys a b d dict zip keyslist,valslist d dict name bob age 22 建立字典的函式 d name 通過索引key獲取對應的value d.keys 返回d字典物件所有key,返回乙個列表 d.va...