模態與非模態對話方塊 兩個對話方塊之間值的傳遞
①、模態對話方塊的建立:CDialog::DoModal
不用釋放資源
②、非模態對話方塊的建立:CDialog::Create
>: MyDialog dlg; 靜態儲存區域:全域性變數 與 DestroyWindow(); 函式配合使用釋放資源
MyDialog dlg;
void CLessonOneDlg::OnBnClickedButton1()
{
dlg.Create(ID_MY_DIALOG,this);
dlg.ShowWindow(SW_SHOW);
}
void MyDialog::OnOK()
{
// TODO: Add your specialized code here and/or call the base class
MessageBox(_T("OnOK"));
DestroyWindow();
//CDialog::OnOK();
}
>: 堆中申請記憶體: DestroyWindow()和PostNcDestroy()函式配合使用
MyDialog *dlg = new MyDialog();
dlg->Create(ID_MY_DIALOG,this);
dlg->ShowWindow(SW_SHOW);
-------------------------------------------------------------
void MyDialog::OnCancel()
{
DestroyWindow();
//CDialog::OnCancel();
}
void MyDialog::PostNcDestroy()
{
delete this;
//CDialog::PostNcDestroy();
}
③、兩個對話方塊之間值的傳遞
①、全域性變數法: CString str; extern CString str;
②、主對話方塊法:AfxGetMainWnd(); CLessonOneDlg *dlg1 = (CLessonOneDlg*)AfxGetMainWnd();
③、父視窗法:GetParent();CLessonOneDlg *dlg1 = (CLessonOneDlg*)GetParent();
④、成員變數、成員函式法; CLessonOneDlg *oneDlg;
---------------------
作者:jmcai520
來源:CSDN
原文:https://blog.csdn.net/jmcai520/article/details/9907121
版權宣告:本文為博主原創文章,轉載請附上博文連結!