1. 程式人生 > >模態與非模態對話方塊 兩個對話方塊之間值的傳遞

模態與非模態對話方塊 兩個對話方塊之間值的傳遞

①、模態對話方塊的建立: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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!