MFC筆記(一):一個對話框類調用(訪問)另一個對話框類的成員變量

MFC筆記(一):一個對話框類調用(訪問)另一個對話框類的成員變量

MFC中一個對話框類CDailog1要訪問另外一個對話框類CDailog2對象的成員變量,這就需要獲得對話框類CDailog2的對象的指針,有好幾種方法可以實現,如維護一個單例模式、設置靜態變量等。

本文設置以靜態變量的方法爲例,實現對兩個對話框之間數據訪問。

一、創建MFC對話框程序

1.首先創建一個MFC對話框應用程序,命名爲Test工程.
2.對話框本身有一個主界面(CTestDlg對話框),那我們再添加一個新界面CXXXDlg.
3.在主對話框(CTestDlg)上添加一個picture控件 ,對應變量名爲ImageShowRect。

二、在CTestDlg.h文件中,添加對話框指針變量的聲明

static CTestDlg *pTestdlg;

三、在CTestDlg .cpp文件中,寫上一行初始化代碼,直接初始化爲空

CTestDlg *CTestDlg::pTestdlg = NULL;  //注意要寫在類外,不要寫在類實現函數裏面。

注意:
由於這個指針是靜態的,我們需要在類外初始化。

四、然後要在CTestDlg.cpp文件的OnInitDialog()函數裏面寫上如下一句代碼

pTestdlg = this;  //爲這個之前定義的指針變量賦值爲主對話框指針

*說明:
現在我們只要在其他的類裏面獲得這個靜態指針,就可以訪問這個類裏面的所有數據了~~~~*

五、獲得靜態指針

假設,我們想在CXXXDlg類中訪問CTestDlg類的m_ImageShowRect變量,只需要在CXXXDlg.cpp文件的具體某個功能的實現函數中添加如下代碼

void  CXXXDlg::showimage()
{
CTestDlg *pdlg = CTestDlg::pTestdlg ;
pdlg->m_ImageShowRect.GetClientRect(&clRect);
...
...
}

說明:
m_ImageShowRect爲主對話框TestDlg中picture控件的捆綁變量。

End!

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