1. 程式人生 > >紫影龍的程式設計日記 —— 介面設計之對話方塊

紫影龍的程式設計日記 —— 介面設計之對話方塊

今天是我學習VC++開發的第八天,我主要學習的內容是介面設計中的對話方塊部分。
首先我們來認識一下什麼是對話方塊~

對話方塊是一種視窗,包含按鈕和各種選項,通過它們可以完成特定命令或任務。對話方塊也是人機交流的一種方式,使用者對對話方塊進行設定,計算機就會執行相應的命令。

模式對話方塊的建立與使用

#include "MyDlg.h"  //必須包含該對話方塊類的標頭檔案才可以建立與使用該對話方塊
void Sample()
{
    CMyDlg  pDlg;   //定義對話方塊類的物件
    pDlg.DoModal(); //顯示模式對話方塊
}

非模式對話方塊的建立與使用

#include
"MyDlg.h" //必須包含該對話方塊類的標頭檔案才可以建立與使用該對話方塊 void Sample() { CMyDlg * pDlg = new CMyDlg(); //建立物件並呼叫建構函式 () 可以省略 pDlg->Create(IDD_DIALOG,this); //建立非模式對話方塊 pDlg->ShowWindow(SW_SHOW); //顯示非模式對話方塊 }

模式對話方塊的銷燬
模式對話方塊的銷燬很簡單,只需要呼叫父類 (CDialog) 的 OnOK() 或者OnCancel() 方法就可以銷燬啦。

void Sample()
{
    CDialog::OnOK(); 
}

非模式對話方塊的銷燬
非模式對話方塊的銷燬就複雜一些了,我們需要先呼叫父類的 DestoryWindow() 方法銷燬非模式對話方塊,之後使用 delete 關鍵字釋放通過new關鍵字分配的記憶體。

void Sample()
{
    pDlg->DestoryWindow(); //銷燬非模式對話方塊
    delete pDlg;           //釋放記憶體 若不釋放,則會發生記憶體洩露
}

我們來實際操練一下吧~
首先,我們對對話方塊資源點選右鍵,選擇 Insert Dialog 插入一個對話方塊

這裡寫圖片描述

然後我們對我們新建好的對話方塊右鍵,選擇 Properties 開啟它的屬性,將他的 ID 改成 IDC_LOGIN
這裡寫圖片描述

這裡寫圖片描述

然後我們對著這個對話方塊點選右鍵,選擇 Properties 開啟它的屬性 (也可以通過快捷鍵 Alt + 回車 開啟)
這裡寫圖片描述

我們將對話方塊的標題 (Caption) 改成 登陸系統
這裡寫圖片描述

再用同樣的方法分別把2個按鈕控制元件的標題改成 登陸和退出
這裡寫圖片描述

然後呢,我們再從控制元件面板上拖出2個靜態文字控制元件和2個編輯框控制元件
把2個靜態文字控制元件的標題改成 使用者 和 密碼
然後把2個編輯框控制元件的 ID 改成 IDC_USER 和 IDC_PASSWORD

這裡寫圖片描述

這樣子我們對話方塊的大致樣子也就出來啦,接下來我們需要為我們的對話方塊新建一個對話方塊類
雙擊我們的對話方塊,類嚮導將會詢問你,該對話方塊還沒有關聯一個對話方塊類,需要建立一個新的對話方塊類還是選擇一個已有的類關聯該對話方塊
這裡寫圖片描述

我們新建一個 CLogin 類
這裡寫圖片描述

點選確定之後,我們的對話方塊就和CLogin類關聯上啦~

做好登陸對話方塊之後呢,我們需要在進入主窗體之前先彈出登陸視窗,那麼應該怎麼做呢?
首先我們把 CLogin 類的標頭檔案複製到主窗體的原始檔中
這裡寫圖片描述

然後我們在主窗體的 OnInitDialog() 方法里加上登陸視窗的呼叫程式碼
這裡寫圖片描述

這樣子就可以在主介面之前彈出我們的登陸介面啦~
編譯之後執行。

這裡寫圖片描述

好了,就先到這裡吧。