第一篇:登錄注冊(cè)對(duì)話框?qū)嶒?yàn)報(bào)告
登錄注冊(cè)對(duì)話框?qū)嶒?yàn)報(bào)告
班 級(jí):10網(wǎng)工三班
學(xué)生姓名:謝昊天
學(xué)號(hào):1215134046
實(shí)驗(yàn)?zāi)康暮鸵螅?實(shí)驗(yàn)?zāi)康?/p>
1、加深理解Windows程序設(shè)計(jì)的基本概念;
2、基于單文檔的應(yīng)用程序的創(chuàng)建;
3、學(xué)會(huì)對(duì)話框及相關(guān)控件的創(chuàng)建;
4、熟悉基本的Windows消息映射機(jī)制和消息相應(yīng)過程。實(shí)驗(yàn)要求:
1.使用基于對(duì)話框應(yīng)用程序框架; 2.設(shè)計(jì)對(duì)話框中用于用戶交互的控件; 3.完成用戶注冊(cè)功能;
4.用戶數(shù)據(jù)可以使用文件或者數(shù)據(jù)庫進(jìn)行存儲(chǔ); 5.必須完成數(shù)據(jù)的存儲(chǔ)。
實(shí)驗(yàn)內(nèi)容與分析設(shè)計(jì):
1.創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序,實(shí)現(xiàn)具有身份驗(yàn)證的應(yīng)用程序。2.對(duì)話框具有用戶注冊(cè)的功能;
3.系統(tǒng)實(shí)現(xiàn)用戶輸入用戶名和密碼后,程序能夠判斷該用戶的信息的正確性; 4.在完成身份的驗(yàn)證以后要通知用戶結(jié)果。
實(shí)驗(yàn)步驟與調(diào)試過程:
1.打開Visual c++ 6.0編程環(huán)境;
2.點(diǎn)擊文件->新建、選擇建立新的工程;選擇MCFAppWizard[exe]選項(xiàng)建立工程名為“Windows程序設(shè)計(jì)
(一)”的一個(gè)空工程;點(diǎn)擊確定后,選擇基本對(duì)話框。3.點(diǎn)擊左邊的ResourceView,在Dialog上面鼠標(biāo)右鍵單擊彈出一彈出框,單擊Insert Dialog。在右邊新增的對(duì)話框中,加入靜態(tài)文本框和文本編輯框。4.鼠標(biāo)右鍵單擊剛才加進(jìn)去的第一個(gè)靜態(tài)文本框控件,點(diǎn)擊屬性。在彈出的標(biāo)題中填寫:“請(qǐng)輸入賬號(hào):”然后回車,同樣在下面的第二個(gè)靜態(tài)文本框的屬性標(biāo)題改為:“請(qǐng)輸入密碼:”然后回車。
5.在第一個(gè)文本編輯框上右鍵單擊,點(diǎn)擊屬性,把ID框中的IDC_EDIT1改為容易理解的名字,如:IDC_EDIT_NAME,注意前面的IDC_EDIT最好不要去掉,這樣容易見名而知義。同樣,對(duì)第二個(gè)文本編輯框的屬性中的IDC_EDIT2改為:IDC_EDIT_PWD。
6.在對(duì)話框上的任何空白的地方右鍵單擊,點(diǎn)擊建立類向?qū)?。選擇建立Create a new class,點(diǎn)擊OK。在Name中,為該對(duì)話框類取個(gè)名字:CDlg_login。下面的Base class以及Dialog ID不要隨便改動(dòng)。然后點(diǎn)擊OK。這樣新的類CDlg_login就與本對(duì)話框建立起了聯(lián)系。點(diǎn)擊OK后,點(diǎn)擊member variables。7.左鍵雙擊IDC_EDIT_NAME(或者單擊后,點(diǎn)擊右邊的add variables),為IDC_EDIT_NAME增加一個(gè)對(duì)應(yīng)在類中的名字:m_login_name。點(diǎn)擊OK。同樣也對(duì)IDC_EDIT_PWD也取一個(gè)名字:m_login_pwd。8.點(diǎn)擊確定。這樣我們就建立好了登錄對(duì)話框以及其對(duì)應(yīng)的類CDlg_login。我們?cè)贑lassView里面可以看到我們新加入 類CDlg_login。在對(duì)話框空白的地方單擊右鍵,點(diǎn)擊屬性,在標(biāo)題中輸入:請(qǐng)登錄。
9.點(diǎn)擊右邊的FileView,點(diǎn)擊source files,雙擊MainFrm.cpp。這樣在右邊就打開了該文件。找到CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct),這是窗體框架創(chuàng)建函數(shù)。在該函數(shù)的后面(在return 0;的前面)加入語句:
CDlg_login dlg;//生成一個(gè)登錄對(duì)話框?qū)ο?/p>
dlg.DoModal();//讓對(duì)話框?qū)ο笠杂心J叫问斤@示出來 10.在MainFrm.cpp文件的前面添加:#include “dlg_login.h”。11.然后對(duì)按鈕編譯響應(yīng)函數(shù)。
12.在組建選項(xiàng)中點(diǎn)擊執(zhí)行【服務(wù)器.exe】(或者Ctrl+F5)執(zhí)行程序;
實(shí)驗(yàn)結(jié)果:
彈出登錄對(duì)話框,賬號(hào)輸入“xiehaotian”,密碼輸入“123456”,可實(shí)現(xiàn)登錄、并彈出“登陸成功”的對(duì)話框,如果輸入錯(cuò)誤會(huì)彈出“登錄失敗”的對(duì)話框,點(diǎn)擊“請(qǐng)注冊(cè)新用戶”,彈出注冊(cè)的對(duì)話框,實(shí)現(xiàn)注冊(cè)新用戶。并且可以對(duì)數(shù)據(jù)庫的讀寫更新,對(duì)數(shù)據(jù)的用戶驗(yàn)證。
疑難小結(jié):
通過本次試驗(yàn),了解了MFC簡單對(duì)話框編程的一些基礎(chǔ)知識(shí),學(xué)習(xí)到了用MFC編寫基本對(duì)話框應(yīng)用程序。學(xué)習(xí)到了如何編寫登錄、注冊(cè)新用戶的對(duì)話框,從而實(shí)現(xiàn)用戶的登錄和新用戶的注冊(cè)等功能。從而使我對(duì)MFD基本對(duì)話框應(yīng)用程序有了進(jìn)一步的了解,通過動(dòng)手試驗(yàn),更加深刻的理解了MFC基本對(duì)話框編程的特點(diǎn)。同時(shí),在實(shí)驗(yàn)過程中,回顧書本上的理論知識(shí),鞏固了我的知識(shí)。學(xué)會(huì)了簡單的控制臺(tái)應(yīng)用程序的創(chuàng)建,加深理解Windows程序設(shè)計(jì)的基本概念;利用基于單文檔的應(yīng)用程序的創(chuàng)建;學(xué)會(huì)對(duì)話框及相關(guān)控件的創(chuàng)建;熟悉基本的Windows消息映射機(jī)制和消息相應(yīng)過程。
主要算法和程序清單: 1.編輯登錄按鈕
void logDlg::OnBUTTONlogbt(){
//判斷輸入框里的內(nèi)容和數(shù)據(jù)庫里的內(nèi)容是否一致
UpdateData(true);CDaoRecordset Dbset(&db);CString Filepath=“Database.mdb”;CString Sname,Spsw;_variant_t varname,varpsw;db.Open(Filepath);Dbset.Open(AFX_DAD_USE_DEFAULT_TYPE.“SELECT * FROM DataTable”,0);varname=Dbset.GetFieldValue(“name”);varpsw=Dbset.GetFieldValue(psw);Sname=(LPCSTR)_bstr_t(varname);Spsw=(LPCSTR)_bstr_t(varpsw);Dbset.Close();db.Close();if(m_logname.IsEmpty()||m_logpsw.IsEmpty())//如果輸入對(duì)話框中存在空輸入
{
MessageBox(“信息不能為空!”,“溫馨提示”);
return;} // TODO: Add your control notification handler code here if(Sname.Compare(m_logname)==0&&Spsw.Compare(m_logpsw)==0)//如果密碼和賬號(hào)與數(shù)據(jù)庫一致
{
MessageBox(“登錄成功!”,“溫馨提示”);
CDialog::OnOK();} else {
MessageBox(“賬戶或密碼錯(cuò)誤!”,“溫馨提示”);
return;}
} 2.編輯注冊(cè)按鈕
void RegDlg::OnBUTTONregbt1(){ // TODO: Add your control notification handler code here
UpdataData(true);//更新數(shù)據(jù)庫
CString Filepath=“Database.mdb”;CString Sname;_variant_t varname;CDaoRecordset Dbset(&db);db.Open(Filepath);Dbset.Open(AFX_DAD_USE.DEFAULT_TYPE,“SELECT * FROM DataTable”,0);varname=Dbset.GetFieldValue(name);Sname=(LPCSTR)_bstr_t(varname);if(m_regname.IsEmpty()||m_regpsw.IsEmpty()){
MessageBox(“信息不能為空!”,“溫馨提示”);
} else {
if(Sname.Conpare(m_regname)!=0)//如果輸入框的名字在數(shù)據(jù)
} { Dbset.Edit();Dbset.SetFieldValue(“name”,_variant_t(m_regname));Dbset.SetFieldValue(“psw”,_variant_t(m_regpsw));Dbset.Update();MessageBox(“注冊(cè)成功!”,“溫馨提示”);} else //如果輸入的名字和數(shù)據(jù)庫的一致,則提示村愛該用戶 { MessageBox(“該用戶已存在”,“溫馨提示”);//其實(shí)應(yīng)該添加一個(gè)修改密碼的功能的,}
第二篇:C# 將窗體顯示為模式對(duì)話框,登錄界面的制作
C# 將窗體顯示為模式對(duì)話框,登錄界面的制作
首先:窗體的兩個(gè)屬性 AcceptButton,和 CancelButton 分別設(shè)置為窗體上“確定”和“取消”按鈕的名字:bnok 和 bncancel.其次:確定按鈕和取消按鈕的“DialogResult”屬性分別設(shè)置為:ok , cancel
然后:窗體上的控件textbox要在類外部讀出來那么設(shè)置其 modifier屬性為public即可
接著:
int errCount = 0;
while(errCount < 3)
{
FrmLogin flog = new frmLogin();
flog.ShowDialog(this);
if(flog.DialogResult == DialogResult.OK)
{
flog.Username = flog.txtusername.Text;
flog.Password = flog.txtpassword.Text;
if(flog.Username == “l(fā)iumu” &&
flog.Password == “198331622”)
{
MessageBox.Show(“歡迎訪問該系統(tǒng)”, “登錄成功”);
ShowWelcomePage();
break;
}
else
{
errCount++;
MessageBox.Show(“用戶名或密碼有誤請(qǐng)核對(duì)后重新輸入”, “錯(cuò)誤提示”);}
}
else if(flog.ShowDialog()== DialogResult.Cancel)
{
Application.Exit();
}
}
if(errCount == 3)
{
MessageBox.Show(“您三次輸入有誤,被迫推出系統(tǒng),Sorry!”, “退出提示”);Application.Exit();
}
第三篇:unity3d游戲開發(fā)之登錄注冊(cè)應(yīng)用
在注冊(cè)的時(shí)候,輸入了數(shù)據(jù)庫已存在的用戶名,會(huì)顯示用戶已存在。
//驗(yàn)證用戶是否存在
Users u = new Users().register(name);
if(name == u.Name)
{
name = “該用戶已存在”;
a =GUI.Button(new Rect(600, 360, 40, 20), “注冊(cè)”);
}
在登錄的時(shí)候,當(dāng)用戶輸入錯(cuò)誤密碼或用戶名就會(huì)出現(xiàn)提示:
章來自狗刨學(xué)習(xí)網(wǎng)
代碼部分:
如果用戶名和數(shù)據(jù)庫的不同
就提示:
print(“用戶或密碼錯(cuò)誤”);
name = “";
password = ”";
flag = true;
這篇文章來自狗刨學(xué)習(xí)網(wǎng)
這篇文
第四篇:會(huì)員登錄
目錄
準(zhǔn)備否調(diào)用isNameFormar方法判斷用戶名輸入的是否滿足要求?是是調(diào)用自定義isName方法判斷用戶名是否已存在?否獲取用戶填寫的登錄名,登錄密碼(使用MD5加密),性別,電子郵箱,QQ用戶名已存在,Label控件為紅提示“請(qǐng)正確填寫信息!”創(chuàng)建SQL語句,該語句用來添加用戶的詳細(xì)信息創(chuàng)建數(shù)據(jù)庫連接,打開數(shù)據(jù)庫連接,創(chuàng)建SqlCommand對(duì)象否判斷ExecuteNonQuery方法返回的參數(shù)是否大于0?是注冊(cè)成功提示“請(qǐng)正確填寫信息!”結(jié)束 圖4.5 Register_Clink事件實(shí)現(xiàn)框圖
圖4.6 會(huì)員注冊(cè)頁面設(shè)計(jì)圖
會(huì)員登錄
目錄
會(huì)員登錄主要通過判斷用戶輸入的會(huì)員名和密碼是否與數(shù)據(jù)庫中的會(huì)員名和密碼相同,如果相同則登錄成功。
第五篇:MFC 對(duì)話框編程 -- 總結(jié)
MFC 對(duì)話框編程--總結(jié)
一、創(chuàng)建對(duì)話框?qū)ο?/p>
1.首先利用資源編輯器創(chuàng)建對(duì)話框資源,并針對(duì)該對(duì)話框資源定義一個(gè)對(duì)話框類:classCTestDlg :public CDialog
2.創(chuàng)建話話框?qū)ο?/p>
模態(tài)對(duì)話框的創(chuàng)建:
如:
CTestDlgdlg;
dlg.DoModal();
非模態(tài)對(duì)話框創(chuàng)建:
如:
CTestDlgdlg;
dlg.Create(IDD_DIALOG, this);
但這樣是得不到一個(gè)正常顯示的非模態(tài)對(duì)話框的。因?yàn)槟B(tài)與非模態(tài)對(duì)話框的實(shí)現(xiàn)方式并不相同,這里我們還要注意幾點(diǎn)。
非模態(tài)對(duì)話框創(chuàng)建完成后是隱藏著的,必須調(diào)用ShowWindow來進(jìn)行顯示。
對(duì)于模態(tài)對(duì)話框,當(dāng)執(zhí)行到DoModal 函數(shù)以創(chuàng)建對(duì)話框時(shí),程序會(huì)暫停執(zhí)行,直至模態(tài)對(duì)話框關(guān)閉。所以創(chuàng)建模態(tài)對(duì)話框可以采用局部對(duì)象。
但是,對(duì)于非模態(tài)對(duì)話框,當(dāng)執(zhí)行Create函數(shù)時(shí)并不會(huì)暫停執(zhí)行,當(dāng)執(zhí)行到大括號(hào)“}后Dlg局部對(duì)象被銷毀生命周期結(jié)束,于是異常出現(xiàn)了。
解決方法有兩個(gè):
一、在View類中定義一個(gè)CTestDlg 成員變量。
二、動(dòng)態(tài)創(chuàng)建一個(gè)CTestDlg 變量,并重寫CTestDlg 類的 PostNcDestroy函數(shù),在該函數(shù)里銷毀對(duì)象 deletethis;
無論創(chuàng)建的是模態(tài)對(duì)話框,還是非模態(tài)對(duì)話框,當(dāng)我們單擊確定或取消按鈕后對(duì)話框都會(huì)消失。但這時(shí)低層的操作卻是不同的。
對(duì)于模態(tài)對(duì)話框,此時(shí)對(duì)話框?qū)ο蟮拇_是被銷毀了,但對(duì)于非模態(tài)對(duì)話框,這時(shí)只是隱藏起來不再顯示。這需要我們自己調(diào)用DestoryWindow函數(shù)來進(jìn)行銷毀工作。
這時(shí)我們必須重寫 CTestDlg 的 OnOK、OnCancel 兩個(gè)函數(shù)(這兩個(gè)是基類CDialog的虛函數(shù)),在這兩個(gè)函數(shù)內(nèi)調(diào)用DestroyWindow函數(shù),并注意不再調(diào)用基類CDialog相應(yīng)的函數(shù)。正確地創(chuàng)建非模態(tài)對(duì)話框的代碼如下:
CTestDlg*pDlg = new CTestDlg;
pDlg->Create(IDD_DIALOG, this);
pDlg->ShowWindow(SW_SHOW);
同時(shí),在CTestDlg 類的 PostNcDestroy函數(shù)中銷毀對(duì)象:deletethis;
二、動(dòng)態(tài)創(chuàng)建按鈕
1.在對(duì)話框類CTestDlg 中定義一個(gè) CButton 類對(duì)象,作為其成員變量。
2.在相應(yīng)的消息處理中,調(diào)用 CButton類的Create函數(shù)創(chuàng)建按鈕。
要注意兩點(diǎn):
如果在調(diào)用CButton::Create創(chuàng)建按鈕時(shí)沒有指定WS_VISIBLE 風(fēng)格,那么隨后一定要調(diào)用這個(gè)按鈕對(duì)象的ShowWindow函數(shù),來將該按鈕顯示出來。
為防止該CButton關(guān)聯(lián)多個(gè)按鈕,這里需要進(jìn)行一些設(shè)置,如下:
if(!m_btn.m_hwnd)
{
// CButton 對(duì)象m_btn 未關(guān)聯(lián)一個(gè)按鈕
m_btn.Create(....);
}
else
{
// CButton 對(duì)象m_btn 已關(guān)聯(lián)一個(gè)按鈕
其他操作...}
當(dāng)然,方法并不只這一種。但這是最漂亮的方法。
三、設(shè)置控件文本文字
1.下面列舉幾個(gè)用來設(shè)置控件文本文字的函數(shù):
// 取得對(duì)話框中指定控件的窗口句柄??丶ㄟ^ID標(biāo)識(shí)來指定
CWnd*GetDlgItem(int nID)const;
void CWnd::GetDlgItem(int nID, HWND* phWnd)const;
// 取得窗口文本
intGetWindowText(LPTSTR lpszStringBuf, int nMaxCount)const;
voidGetWindowText(CString& rString)const;
// 設(shè)置窗口文本
voidSetWindowText(LPCTSTR lpszString);
// 取得指定控件窗口文本??丶ㄟ^ID標(biāo)識(shí)來指定
intGetDlgItemText(int nID, LPTSTR lpStr, int nMaxCount)const;
intGetDlgItemText(int nID, CString& rString)const;
// 設(shè)置指定控件窗口文本??丶ㄟ^ID標(biāo)識(shí)來指定
void SetDlgItemText(int nID, LPCTSTR lpszString);
// 取得指定控件窗口文本,并轉(zhuǎn)化為UINT 類型返回。控件通過ID標(biāo)識(shí)來指定
UINT GetDlgItemInt(int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE)const;// 設(shè)置指定控件窗口文本,由UINT類型轉(zhuǎn)化為字符??丶ㄟ^ID標(biāo)識(shí)來指定
voidSetDlgItemInt(int nID, UINT nValue, BOOL bSigned = TRUE);
2.可以為對(duì)話框控件關(guān)聯(lián)一個(gè)變量,在CTestDlg 類的DoDataExchange來完成數(shù)據(jù)的更新與交換。這里我們需要重點(diǎn)說明 DoDataExChange 函數(shù):
首先引用MSDN的一段解釋吧:Called by the framework to exchange and validate dialog data。意指框架調(diào)用此函數(shù)來改寫與確認(rèn)對(duì)話框數(shù)據(jù)。
其實(shí)DoDataExChange函數(shù)主要是通過DDX_TEXT(....)或 DDX_CONTROL(....)來實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)關(guān)聯(lián)的。
我從我的MSDN中隨便拿來一個(gè)定義:
void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, BYTE& value);
其實(shí)這個(gè)要關(guān)聯(lián)的話也很簡單,沒有那么復(fù)雜。如下:
value = GetDlgItemInt(nIDC);
SetDlgItemInt(nIDC, value);
而DoDataExchange 函數(shù)是在UpdateData函數(shù)內(nèi)部調(diào)用的。
該函數(shù)只有一個(gè)布爾型參數(shù),b31.org 它決定了數(shù)據(jù)傳送的方向:
調(diào)用UpdateData(TRUE),將數(shù)據(jù)從對(duì)話框的控件中傳送到對(duì)應(yīng)的數(shù)據(jù)成員中。
調(diào)用UpdateData(FALSE),則將數(shù)據(jù)從數(shù)據(jù)成員中傳送給對(duì)應(yīng)的控件。
UpdateData(FALSE)是將變量的值傳到控件.UpdateData(TRUE)是從控件中取值到關(guān)聯(lián)的變量
四、對(duì)話框伸縮功能的實(shí)現(xiàn)
只關(guān)聯(lián)到兩個(gè)函數(shù):
// 取得指定窗口邊框折尺寸
void GetWindowRect(LPRECT lpRect)const;
// 設(shè)置指定窗口(控件)的位置同尺寸
BOOL SetWindowPos(const CWnd* pWndInsertAfter, intx, inty, int cx, intcy, UINTnFlags);
五、逃跑按鈕的實(shí)現(xiàn)
1.創(chuàng)建一個(gè)基于對(duì)話框的MFC 程序,刪除原有的控件后,再添加兩個(gè)按鈕,更改兩按鈕名為”你能抓到我嗎?“
2.打開類視圖,定義一個(gè)新類CNewButton,這個(gè)新類的基類為CButton。并為此類添加一個(gè)成員變量:CNewButton*m_pbtn;
3.打開資源視圖,分別為兩個(gè)按鈕創(chuàng)建兩個(gè)CNewButton類關(guān)聯(lián)變量:m_btn1, m_btn2;
4.在CXXXDlg中改寫其OnInitDialog函數(shù)。主要添加:
m_btn1.m_pbtn = &m_btn2;
m_btn2.m_pbtn = &m_btn1;
5.對(duì)于CNewButton 類,必定其OnMouseMove函數(shù)。主要添加:
ShowWindow(SW_HIDE);
m_pbtn->ShowWindow(SW_SHOW);
編譯,連接。OK
六、屬性頁、屬性表單與向?qū)У慕?/p>
1.創(chuàng)建屬性頁
打開資源編輯器,點(diǎn)擊Dialog 資源并在列出的選項(xiàng)中,選擇:IDD_PROPPAGE_LARGE。建立屬性頁資源。
之后,我們就可以其上添加其他控件來完善我們的屬性頁。關(guān)于屬性頁的完善操作我們?cè)诤竺鏁?huì)談到。
屬性頁資源完善后,再為每一個(gè)屬性頁關(guān)聯(lián)一個(gè)類。
2.創(chuàng)建屬性表單
打開類視圖,添加新類CPropSheet,其基類為CPropertySheet。
之后再為其添加屬性頁類對(duì)象,并在其構(gòu)造函數(shù)中利用AddPage函數(shù)將屬性頁添加到表單上。
3.消息響應(yīng)
再主菜單的最后再增加一個(gè)菜單項(xiàng),并為此菜單添加消息響應(yīng)函數(shù)。
在此響應(yīng)函數(shù)中創(chuàng)建屬性表單:
CPropSheetpropSheet(TEXT(”屬性表單"));
propSheet.DoModal();
4.向?qū)У膭?chuàng)建
創(chuàng)建一個(gè)向?qū)ь愋偷膶?duì)話框,應(yīng)該遵循創(chuàng)建一個(gè)標(biāo)準(zhǔn)屬性表單的步驟來實(shí)現(xiàn)。
但在調(diào)用屬性表單對(duì)象的DoModal函數(shù)之前,應(yīng)該先調(diào)用SetWizardMode函數(shù),來聲明建立的是一個(gè)作為向?qū)У膶傩员韱巍?/p>
所以,應(yīng)在DoModal函數(shù)之前添加如下代碼:
propSheet.SetWizardMode();
5.屬性頁的完善操作
首先我們要注意到屬性頁,澳門新濠天地官網(wǎng)66bb.org 在三個(gè)不同時(shí)期的關(guān)鍵性操作:當(dāng)屬性表單中的某屬性頁被選中,從而成為一個(gè)活動(dòng)的頁面時(shí),應(yīng)用程序框架就會(huì)調(diào)用OnSetActive函數(shù)。
OnSetActive 是其基類的一個(gè)虛函數(shù),我們可以重寫這個(gè)函數(shù)并在其中進(jìn)行一些操作。
假設(shè)當(dāng)前我們處于屬性表單中的某屬性頁,當(dāng)我們點(diǎn)擊下一步并將進(jìn)入下一個(gè)屬性頁時(shí),應(yīng)用程序框架會(huì)調(diào)用OnWizardNext函數(shù)。
OnWizardNext 是其基類的一個(gè)虛函數(shù),我們可以重寫這個(gè)函數(shù)并在其中進(jìn)行一些操作。類似的還有OnWizardBack 同 OnWizardFinish函數(shù)。
當(dāng)一個(gè)屬性頁被創(chuàng)建時(shí),會(huì)調(diào)用其OnInitDialog函數(shù)。
我們可以在這個(gè)函數(shù)里對(duì)屬性頁中的控件進(jìn)行一些操作。如為列表框或下拉框添加字符串等。