VC++60 第八章 自定義對話框

第八章 自定義對話框

 

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

 

本章要點

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

 

8.1 MyCus.exe程序的界面和功能

本程序的主窗口(圖1)就出現三個按鈕,按[Input text]按鈕彈出如圖2所示的對話框。

VC++60 <wbr>第八章 <wbr>自定義對話框

VC++60 <wbr>第八章 <wbr>自定義對話框

 
VC++60 <wbr>第八章 <wbr>自定義對話框

它有一個編輯框,輸入信息後關閉,信息就傳遞到主窗口。再按[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 設計一個程序來演示要求用戶輸入帳號和密碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章